From dee9315801b5dc49b795d13081086c22622a11ec Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 29 Oct 2019 15:07:20 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- CHANGELOG-EE.md | 2 +- Gemfile.lock | 16 ++-- .../components/project_form_group.vue | 2 +- app/finders/admin/projects_finder.rb | 4 +- app/helpers/visibility_level_helper.rb | 4 +- ...h-bitbucket-importer-handle-superseded.yml | 5 ++ changelogs/unreleased/sh-update-aws-sdk.yml | 5 ++ lib/bitbucket/representation/pull_request.rb | 5 +- lib/gitlab/ci/config/entry/job.rb | 6 +- lib/gitlab/ci/config/entry/need.rb | 44 ++++++++++ lib/gitlab/ci/config/entry/needs.rb | 55 ++++++++++++ lib/gitlab/ci/yaml_processor.rb | 16 ++-- lib/gitlab/config/entry/configurable.rb | 29 ++++--- lib/gitlab/config/entry/node.rb | 4 + lib/gitlab/config/entry/simplifiable.rb | 11 ++- lib/gitlab/config/entry/validatable.rb | 21 ++++- lib/quality/kubernetes_client.rb | 3 +- locale/ar_SA/gitlab.po | 2 +- locale/bg/gitlab.po | 2 +- locale/bn_BD/gitlab.po | 2 +- locale/bn_IN/gitlab.po | 2 +- locale/ca_ES/gitlab.po | 2 +- locale/cs_CZ/gitlab.po | 2 +- locale/cy_GB/gitlab.po | 2 +- locale/da_DK/gitlab.po | 2 +- locale/de/gitlab.po | 2 +- locale/el_GR/gitlab.po | 2 +- locale/eo/gitlab.po | 2 +- locale/es/gitlab.po | 2 +- locale/et_EE/gitlab.po | 2 +- locale/fa_IR/gitlab.po | 2 +- locale/fil_PH/gitlab.po | 2 +- locale/fr/gitlab.po | 2 +- locale/gitlab.pot | 2 +- locale/gl_ES/gitlab.po | 2 +- locale/he_IL/gitlab.po | 2 +- locale/hi_IN/gitlab.po | 2 +- locale/hr_HR/gitlab.po | 2 +- locale/hu_HU/gitlab.po | 2 +- locale/id_ID/gitlab.po | 2 +- locale/it/gitlab.po | 2 +- locale/ja/gitlab.po | 2 +- locale/ka_GE/gitlab.po | 2 +- locale/ko/gitlab.po | 2 +- locale/mn_MN/gitlab.po | 2 +- locale/nb_NO/gitlab.po | 2 +- locale/nl_NL/gitlab.po | 2 +- locale/pa_IN/gitlab.po | 2 +- locale/pl_PL/gitlab.po | 2 +- locale/pt_BR/gitlab.po | 2 +- locale/pt_PT/gitlab.po | 2 +- locale/ro_RO/gitlab.po | 2 +- locale/ru/gitlab.po | 2 +- locale/sk_SK/gitlab.po | 2 +- locale/sq_AL/gitlab.po | 2 +- locale/sr_CS/gitlab.po | 2 +- locale/sr_SP/gitlab.po | 2 +- locale/sv_SE/gitlab.po | 2 +- locale/sw_KE/gitlab.po | 2 +- locale/tr_TR/gitlab.po | 2 +- locale/uk/gitlab.po | 2 +- locale/vi_VN/gitlab.po | 2 +- locale/zh_CN/gitlab.po | 2 +- locale/zh_HK/gitlab.po | 2 +- locale/zh_TW/gitlab.po | 2 +- scripts/review_apps/automated_cleanup.rb | 2 +- spec/features/projects/compare_spec.rb | 4 +- .../project_form_group_spec.js.snap | 4 +- .../ide/components/preview/clientside_spec.js | 4 +- .../representation/pull_request_spec.rb | 1 + spec/lib/gitlab/ci/config/entry/job_spec.rb | 17 +--- spec/lib/gitlab/ci/config/entry/need_spec.rb | 36 ++++++++ spec/lib/gitlab/ci/config/entry/needs_spec.rb | 84 +++++++++++++++++++ spec/lib/gitlab/ci/yaml_processor_spec.rb | 15 +--- spec/lib/gitlab/experimentation_spec.rb | 18 +--- spec/lib/quality/kubernetes_client_spec.rb | 31 ++++++- 76 files changed, 394 insertions(+), 150 deletions(-) create mode 100644 changelogs/unreleased/sh-bitbucket-importer-handle-superseded.yml create mode 100644 changelogs/unreleased/sh-update-aws-sdk.yml create mode 100644 lib/gitlab/ci/config/entry/need.rb create mode 100644 lib/gitlab/ci/config/entry/needs.rb create mode 100644 spec/lib/gitlab/ci/config/entry/need_spec.rb create mode 100644 spec/lib/gitlab/ci/config/entry/needs_spec.rb diff --git a/CHANGELOG-EE.md b/CHANGELOG-EE.md index a4874791082..b939be178be 100644 --- a/CHANGELOG-EE.md +++ b/CHANGELOG-EE.md @@ -4162,7 +4162,7 @@ Please view this file on the master branch, on stable branches it's out of date. - Show hook errors for fast-forward merges. !1375 - Allow all parameters of group webhooks to be set through the UI. !1376 - Fix Elasticsearch queries when a group_id is specified. !1423 -- Check the right index mapping based on Rails environment for rake gitlab:elastic:add_feature_visiblity_levels_to_project. !1473 +- Check the right index mapping based on Rails environment for rake gitlab:elastic:add_feature_visibility_levels_to_project. !1473 - Fix issues with another milestone that has a matching list label could not be added to a board. - Only admins or group owners can set LDAP overrides. - Add support for load balancing database queries. diff --git a/Gemfile.lock b/Gemfile.lock index 9ba2c0b5a31..ecc68463f89 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,14 +80,16 @@ GEM encryptor (~> 3.0.0) attr_required (1.0.1) awesome_print (1.8.0) - aws-sdk (2.9.32) - aws-sdk-resources (= 2.9.32) - aws-sdk-core (2.9.32) + aws-eventstream (1.0.3) + aws-sdk (2.11.374) + aws-sdk-resources (= 2.11.374) + aws-sdk-core (2.11.374) aws-sigv4 (~> 1.0) jmespath (~> 1.0) - aws-sdk-resources (2.9.32) - aws-sdk-core (= 2.9.32) - aws-sigv4 (1.0.0) + aws-sdk-resources (2.11.374) + aws-sdk-core (= 2.11.374) + aws-sigv4 (1.1.0) + aws-eventstream (~> 1.0, >= 1.0.2) axiom-types (0.1.1) descendants_tracker (~> 0.0.4) ice_nine (~> 0.11.0) @@ -506,7 +508,7 @@ GEM atlassian-jwt multipart-post oauth (~> 0.5, >= 0.5.0) - jmespath (1.3.1) + jmespath (1.4.0) js_regex (3.1.1) character_set (~> 1.1) regexp_parser (~> 1.1) diff --git a/app/assets/javascripts/confidential_merge_request/components/project_form_group.vue b/app/assets/javascripts/confidential_merge_request/components/project_form_group.vue index 197a0706062..4fa18b19556 100644 --- a/app/assets/javascripts/confidential_merge_request/components/project_form_group.vue +++ b/app/assets/javascripts/confidential_merge_request/components/project_form_group.vue @@ -41,7 +41,7 @@ export default { noForkText() { return sprintf( __( - "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private.", + "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private.", ), { link_start: ``, link_end: '' }, false, diff --git a/app/finders/admin/projects_finder.rb b/app/finders/admin/projects_finder.rb index e2b9b0b44c1..53dbf65c43a 100644 --- a/app/finders/admin/projects_finder.rb +++ b/app/finders/admin/projects_finder.rb @@ -12,7 +12,7 @@ class Admin::ProjectsFinder def execute items = Project.without_deleted.with_statistics.with_route items = by_namespace_id(items) - items = by_visibilty_level(items) + items = by_visibility_level(items) items = by_with_push(items) items = by_abandoned(items) items = by_last_repository_check_failed(items) @@ -31,7 +31,7 @@ class Admin::ProjectsFinder end # rubocop: disable CodeReuse/ActiveRecord - def by_visibilty_level(items) + def by_visibility_level(items) params[:visibility_level].present? ? items.where(visibility_level: params[:visibility_level]) : items end # rubocop: enable CodeReuse/ActiveRecord diff --git a/app/helpers/visibility_level_helper.rb b/app/helpers/visibility_level_helper.rb index 2bd803c0177..a36de5dc548 100644 --- a/app/helpers/visibility_level_helper.rb +++ b/app/helpers/visibility_level_helper.rb @@ -201,9 +201,9 @@ module VisibilityLevelHelper def visibility_level_errors_for_group(group, level_name) group_name = link_to group.name, group_path(group) - change_visiblity = link_to 'change the visibility', edit_group_path(group) + change_visibility = link_to 'change the visibility', edit_group_path(group) { reason: "the visibility of #{group_name} is #{group.visibility}", - instruction: " To make this group #{level_name}, you must first #{change_visiblity} of the parent group." } + instruction: " To make this group #{level_name}, you must first #{change_visibility} of the parent group." } end end diff --git a/changelogs/unreleased/sh-bitbucket-importer-handle-superseded.yml b/changelogs/unreleased/sh-bitbucket-importer-handle-superseded.yml new file mode 100644 index 00000000000..35f169cae43 --- /dev/null +++ b/changelogs/unreleased/sh-bitbucket-importer-handle-superseded.yml @@ -0,0 +1,5 @@ +--- +title: Make Bitbucket Cloud superseded pull requests as closed +merge_request: 19193 +author: +type: fixed diff --git a/changelogs/unreleased/sh-update-aws-sdk.yml b/changelogs/unreleased/sh-update-aws-sdk.yml new file mode 100644 index 00000000000..608cda98d86 --- /dev/null +++ b/changelogs/unreleased/sh-update-aws-sdk.yml @@ -0,0 +1,5 @@ +--- +title: Update AWS SDK to 2.11.374 +merge_request: 18601 +author: +type: other diff --git a/lib/bitbucket/representation/pull_request.rb b/lib/bitbucket/representation/pull_request.rb index a498c9bc213..8d9de2dbc7d 100644 --- a/lib/bitbucket/representation/pull_request.rb +++ b/lib/bitbucket/representation/pull_request.rb @@ -16,9 +16,10 @@ module Bitbucket end def state - if raw['state'] == 'MERGED' + case raw['state'] + when 'MERGED' 'merged' - elsif raw['state'] == 'DECLINED' + when 'DECLINED', 'SUPERSEDED' 'closed' else 'opened' diff --git a/lib/gitlab/ci/config/entry/job.rb b/lib/gitlab/ci/config/entry/job.rb index 1298e2d3462..2d5981a4255 100644 --- a/lib/gitlab/ci/config/entry/job.rb +++ b/lib/gitlab/ci/config/entry/job.rb @@ -50,7 +50,6 @@ module Gitlab validates :timeout, duration: { limit: ChronicDuration.output(Project::MAX_BUILD_TIMEOUT) } validates :dependencies, array_of_strings: true - validates :needs, array_of_strings: true validates :extends, array_of_strings_or_string: true validates :rules, array_of_hashes: true end @@ -114,6 +113,11 @@ module Gitlab description: 'List of evaluable Rules to determine job inclusion.', inherit: false + entry :needs, Entry::Needs, + description: 'Needs configuration for this job.', + metadata: { allowed_needs: %i[job] }, + inherit: false + entry :variables, Entry::Variables, description: 'Environment variables available for this job.', inherit: false diff --git a/lib/gitlab/ci/config/entry/need.rb b/lib/gitlab/ci/config/entry/need.rb new file mode 100644 index 00000000000..b6db546d8ff --- /dev/null +++ b/lib/gitlab/ci/config/entry/need.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +module Gitlab + module Ci + class Config + module Entry + class Need < ::Gitlab::Config::Entry::Simplifiable + strategy :Job, if: -> (config) { config.is_a?(String) } + + class Job < ::Gitlab::Config::Entry::Node + include ::Gitlab::Config::Entry::Validatable + + validations do + validates :config, presence: true + validates :config, type: String + end + + def type + :job + end + + def value + { name: @config } + end + end + + class UnknownStrategy < ::Gitlab::Config::Entry::Node + def type + end + + def value + end + + def errors + ["#{location} has an unsupported type"] + end + end + end + end + end + end +end + +::Gitlab::Ci::Config::Entry::Need.prepend_if_ee('::EE::Gitlab::Ci::Config::Entry::Need') diff --git a/lib/gitlab/ci/config/entry/needs.rb b/lib/gitlab/ci/config/entry/needs.rb new file mode 100644 index 00000000000..28452aaaa16 --- /dev/null +++ b/lib/gitlab/ci/config/entry/needs.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +module Gitlab + module Ci + class Config + module Entry + ## + # Entry that represents a set of needs dependencies. + # + class Needs < ::Gitlab::Config::Entry::Node + include ::Gitlab::Config::Entry::Validatable + + validations do + validates :config, presence: true + + validate do + unless config.is_a?(Hash) || config.is_a?(Array) + errors.add(:config, 'can only be a Hash or an Array') + end + end + + validate on: :composed do + extra_keys = value.keys - opt(:allowed_needs) + if extra_keys.any? + errors.add(:config, "uses invalid types: #{extra_keys.join(', ')}") + end + end + end + + def compose!(deps = nil) + super(deps) do + [@config].flatten.each_with_index do |need, index| + @entries[index] = ::Gitlab::Config::Entry::Factory.new(Entry::Need) + .value(need) + .with(key: "need", parent: self, description: "need definition.") # rubocop:disable CodeReuse/ActiveRecord + .create! + end + + @entries.each_value do |entry| + entry.compose!(deps) + end + end + end + + def value + values = @entries.values.select(&:type) + values.group_by(&:type).transform_values do |values| + values.map(&:value) + end + end + end + end + end + end +end diff --git a/lib/gitlab/ci/yaml_processor.rb b/lib/gitlab/ci/yaml_processor.rb index f6a3abefcfb..c2a55fa8b1b 100644 --- a/lib/gitlab/ci/yaml_processor.rb +++ b/lib/gitlab/ci/yaml_processor.rb @@ -40,7 +40,7 @@ module Gitlab environment: job[:environment_name], coverage_regex: job[:coverage], yaml_variables: yaml_variables(name), - needs_attributes: job[:needs]&.map { |need| { name: need } }, + needs_attributes: job.dig(:needs, :job), interruptible: job[:interruptible], rules: job[:rules], options: { @@ -59,7 +59,7 @@ module Gitlab instance: job[:instance], start_in: job[:start_in], trigger: job[:trigger], - bridge_needs: job[:needs] + bridge_needs: job.dig(:needs, :bridge)&.first }.compact }.compact end @@ -159,17 +159,19 @@ module Gitlab end def validate_job_needs!(name, job) - return unless job[:needs] + return unless job.dig(:needs, :job) stage_index = @stages.index(job[:stage]) - job[:needs].each do |need| - raise ValidationError, "#{name} job: undefined need: #{need}" unless @jobs[need.to_sym] + job.dig(:needs, :job).each do |need| + need_job_name = need[:name] - needs_stage_index = @stages.index(@jobs[need.to_sym][:stage]) + raise ValidationError, "#{name} job: undefined need: #{need_job_name}" unless @jobs[need_job_name.to_sym] + + needs_stage_index = @stages.index(@jobs[need_job_name.to_sym][:stage]) unless needs_stage_index.present? && needs_stage_index < stage_index - raise ValidationError, "#{name} job: need #{need} is not defined in prior stages" + raise ValidationError, "#{name} job: need #{need_job_name} is not defined in prior stages" end end end diff --git a/lib/gitlab/config/entry/configurable.rb b/lib/gitlab/config/entry/configurable.rb index b7ec4b7c4f8..bda84dc2cff 100644 --- a/lib/gitlab/config/entry/configurable.rb +++ b/lib/gitlab/config/entry/configurable.rb @@ -29,22 +29,24 @@ module Gitlab def compose!(deps = nil) return unless valid? - self.class.nodes.each do |key, factory| - # If we override the config type validation - # we can end with different config types like String - next unless config.is_a?(Hash) + super do + self.class.nodes.each do |key, factory| + # If we override the config type validation + # we can end with different config types like String + next unless config.is_a?(Hash) - factory - .value(config[key]) - .with(key: key, parent: self) + factory + .value(config[key]) + .with(key: key, parent: self) - entries[key] = factory.create! - end + entries[key] = factory.create! + end - yield if block_given? + yield if block_given? - entries.each_value do |entry| - entry.compose!(deps) + entries.each_value do |entry| + entry.compose!(deps) + end end end # rubocop: enable CodeReuse/ActiveRecord @@ -67,12 +69,13 @@ module Gitlab private # rubocop: disable CodeReuse/ActiveRecord - def entry(key, entry, description: nil, default: nil, inherit: nil, reserved: nil) + def entry(key, entry, description: nil, default: nil, inherit: nil, reserved: nil, metadata: {}) factory = ::Gitlab::Config::Entry::Factory.new(entry) .with(description: description) .with(default: default) .with(inherit: inherit) .with(reserved: reserved) + .metadata(metadata) (@nodes ||= {}).merge!(key.to_sym => factory) end diff --git a/lib/gitlab/config/entry/node.rb b/lib/gitlab/config/entry/node.rb index e014f15fbd8..84d3409ed91 100644 --- a/lib/gitlab/config/entry/node.rb +++ b/lib/gitlab/config/entry/node.rb @@ -112,6 +112,10 @@ module Gitlab @aspects ||= [] end + def self.with_aspect(blk) + self.aspects.append(blk) + end + private attr_reader :entries diff --git a/lib/gitlab/config/entry/simplifiable.rb b/lib/gitlab/config/entry/simplifiable.rb index d58aba07d15..315f1947e2c 100644 --- a/lib/gitlab/config/entry/simplifiable.rb +++ b/lib/gitlab/config/entry/simplifiable.rb @@ -4,11 +4,11 @@ module Gitlab module Config module Entry class Simplifiable < SimpleDelegator - EntryStrategy = Struct.new(:name, :condition) + EntryStrategy = Struct.new(:name, :klass, :condition) attr_reader :subject - def initialize(config, **metadata) + def initialize(config, **metadata, &blk) unless self.class.const_defined?(:UnknownStrategy) raise ArgumentError, 'UndefinedStrategy not available!' end @@ -19,14 +19,13 @@ module Gitlab entry = self.class.entry_class(strategy) - @subject = entry.new(config, metadata) + @subject = entry.new(config, metadata, &blk) - yield(@subject) if block_given? super(@subject) end def self.strategy(name, **opts) - EntryStrategy.new(name, opts.fetch(:if)).tap do |strategy| + EntryStrategy.new(name, opts.dig(:class), opts.fetch(:if)).tap do |strategy| strategies.append(strategy) end end @@ -37,7 +36,7 @@ module Gitlab def self.entry_class(strategy) if strategy.present? - self.const_get(strategy.name, false) + strategy.klass || self.const_get(strategy.name, false) else self::UnknownStrategy end diff --git a/lib/gitlab/config/entry/validatable.rb b/lib/gitlab/config/entry/validatable.rb index 1c88c68c11c..45b852dc2e0 100644 --- a/lib/gitlab/config/entry/validatable.rb +++ b/lib/gitlab/config/entry/validatable.rb @@ -7,14 +7,27 @@ module Gitlab extend ActiveSupport::Concern def self.included(node) - node.aspects.append -> do - @validator = self.class.validator.new(self) - @validator.validate(:new) + node.with_aspect -> do + validate(:new) end end + def validator + @validator ||= self.class.validator.new(self) + end + + def validate(context = nil) + validator.validate(context) + end + + def compose!(deps = nil, &blk) + super(deps, &blk) + + validate(:composed) + end + def errors - @validator.messages + descendants.flat_map(&:errors) # rubocop:disable Gitlab/ModuleWithInstanceVariables + validator.messages + descendants.flat_map(&:errors) end class_methods do diff --git a/lib/quality/kubernetes_client.rb b/lib/quality/kubernetes_client.rb index 0bd16935045..cc899bf9374 100644 --- a/lib/quality/kubernetes_client.rb +++ b/lib/quality/kubernetes_client.rb @@ -12,7 +12,7 @@ module Quality @namespace = namespace end - def cleanup(release_name:) + def cleanup(release_name:, wait: true) selector = case release_name when String %(-l release="#{release_name}") @@ -29,6 +29,7 @@ module Quality '--now', '--ignore-not-found', '--include-uninitialized', + %(--wait=#{wait}), selector ] diff --git a/locale/ar_SA/gitlab.po b/locale/ar_SA/gitlab.po index e543747177e..a5ebf2bc24c 100644 --- a/locale/ar_SA/gitlab.po +++ b/locale/ar_SA/gitlab.po @@ -16734,7 +16734,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/bg/gitlab.po b/locale/bg/gitlab.po index 8190c27e65c..8aa6c308b50 100644 --- a/locale/bg/gitlab.po +++ b/locale/bg/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/bn_BD/gitlab.po b/locale/bn_BD/gitlab.po index 0d25da46afd..c001b526690 100644 --- a/locale/bn_BD/gitlab.po +++ b/locale/bn_BD/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/bn_IN/gitlab.po b/locale/bn_IN/gitlab.po index 945f7f66d52..69bc24d65bb 100644 --- a/locale/bn_IN/gitlab.po +++ b/locale/bn_IN/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/ca_ES/gitlab.po b/locale/ca_ES/gitlab.po index 318efa98afa..a5db388bb2d 100644 --- a/locale/ca_ES/gitlab.po +++ b/locale/ca_ES/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/cs_CZ/gitlab.po b/locale/cs_CZ/gitlab.po index 2123f8235de..a03802a6b41 100644 --- a/locale/cs_CZ/gitlab.po +++ b/locale/cs_CZ/gitlab.po @@ -16558,7 +16558,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/cy_GB/gitlab.po b/locale/cy_GB/gitlab.po index f831c880f7d..9f99cd0f9a4 100644 --- a/locale/cy_GB/gitlab.po +++ b/locale/cy_GB/gitlab.po @@ -16734,7 +16734,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/da_DK/gitlab.po b/locale/da_DK/gitlab.po index 352219b4745..ee9dc800d1a 100644 --- a/locale/da_DK/gitlab.po +++ b/locale/da_DK/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/de/gitlab.po b/locale/de/gitlab.po index 57f17ae854d..72541b7a0ae 100644 --- a/locale/de/gitlab.po +++ b/locale/de/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/el_GR/gitlab.po b/locale/el_GR/gitlab.po index b1af45f753a..d48c7419f4e 100644 --- a/locale/el_GR/gitlab.po +++ b/locale/el_GR/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/eo/gitlab.po b/locale/eo/gitlab.po index 76d9514c20c..4f05f7e9c8e 100644 --- a/locale/eo/gitlab.po +++ b/locale/eo/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/es/gitlab.po b/locale/es/gitlab.po index b5968b6981d..e2eb12b71e3 100644 --- a/locale/es/gitlab.po +++ b/locale/es/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "Para abrir Jaeger y ver fácilmente la trazabilidad desde GitLab, enlace msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "Para mantener el rendimiento, solo se muestran %{display_size} de %{real_size} archivos." -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/et_EE/gitlab.po b/locale/et_EE/gitlab.po index 49d881a72a5..b4b9c4b9168 100644 --- a/locale/et_EE/gitlab.po +++ b/locale/et_EE/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/fa_IR/gitlab.po b/locale/fa_IR/gitlab.po index 413cf75f212..6dba28671b2 100644 --- a/locale/fa_IR/gitlab.po +++ b/locale/fa_IR/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/fil_PH/gitlab.po b/locale/fil_PH/gitlab.po index 314a38468db..4991ee53794 100644 --- a/locale/fil_PH/gitlab.po +++ b/locale/fil_PH/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/fr/gitlab.po b/locale/fr/gitlab.po index 18d5cc1cd33..8a018b18ba7 100644 --- a/locale/fr/gitlab.po +++ b/locale/fr/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 9e19792f52e..a53be729dae 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -17344,7 +17344,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/gl_ES/gitlab.po b/locale/gl_ES/gitlab.po index 40738f1c576..dffad3b6308 100644 --- a/locale/gl_ES/gitlab.po +++ b/locale/gl_ES/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/he_IL/gitlab.po b/locale/he_IL/gitlab.po index bc16e8b528b..813226fae23 100644 --- a/locale/he_IL/gitlab.po +++ b/locale/he_IL/gitlab.po @@ -16558,7 +16558,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/hi_IN/gitlab.po b/locale/hi_IN/gitlab.po index 0f51e91d180..e75627165a6 100644 --- a/locale/hi_IN/gitlab.po +++ b/locale/hi_IN/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/hr_HR/gitlab.po b/locale/hr_HR/gitlab.po index 42ec800d560..a375b198f1e 100644 --- a/locale/hr_HR/gitlab.po +++ b/locale/hr_HR/gitlab.po @@ -16470,7 +16470,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/hu_HU/gitlab.po b/locale/hu_HU/gitlab.po index c58c10829c3..1b39fa3a561 100644 --- a/locale/hu_HU/gitlab.po +++ b/locale/hu_HU/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/id_ID/gitlab.po b/locale/id_ID/gitlab.po index 2df79fe4a42..df633eed7a3 100644 --- a/locale/id_ID/gitlab.po +++ b/locale/id_ID/gitlab.po @@ -16294,7 +16294,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/it/gitlab.po b/locale/it/gitlab.po index dcf71315806..27c608d98af 100644 --- a/locale/it/gitlab.po +++ b/locale/it/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/ja/gitlab.po b/locale/ja/gitlab.po index 9d4f49abbd4..d180d391258 100644 --- a/locale/ja/gitlab.po +++ b/locale/ja/gitlab.po @@ -16294,7 +16294,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/ka_GE/gitlab.po b/locale/ka_GE/gitlab.po index 4807ae7d883..916fe53e00a 100644 --- a/locale/ka_GE/gitlab.po +++ b/locale/ka_GE/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/ko/gitlab.po b/locale/ko/gitlab.po index f51f1290306..5fc741ea76e 100644 --- a/locale/ko/gitlab.po +++ b/locale/ko/gitlab.po @@ -16294,7 +16294,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/mn_MN/gitlab.po b/locale/mn_MN/gitlab.po index a29ea775eab..1cb61c95acf 100644 --- a/locale/mn_MN/gitlab.po +++ b/locale/mn_MN/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/nb_NO/gitlab.po b/locale/nb_NO/gitlab.po index d7ea32e6542..777b0904a2a 100644 --- a/locale/nb_NO/gitlab.po +++ b/locale/nb_NO/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/nl_NL/gitlab.po b/locale/nl_NL/gitlab.po index 03a0b331986..d91bdf5b9e3 100644 --- a/locale/nl_NL/gitlab.po +++ b/locale/nl_NL/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/pa_IN/gitlab.po b/locale/pa_IN/gitlab.po index 6fb77c5e652..afdb8f86649 100644 --- a/locale/pa_IN/gitlab.po +++ b/locale/pa_IN/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/pl_PL/gitlab.po b/locale/pl_PL/gitlab.po index bda1ec45c8b..c9cc736d231 100644 --- a/locale/pl_PL/gitlab.po +++ b/locale/pl_PL/gitlab.po @@ -16558,7 +16558,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/pt_BR/gitlab.po b/locale/pt_BR/gitlab.po index 93912e40b6d..1c72821aaea 100644 --- a/locale/pt_BR/gitlab.po +++ b/locale/pt_BR/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/pt_PT/gitlab.po b/locale/pt_PT/gitlab.po index 6e13301ff56..994bfcf7920 100644 --- a/locale/pt_PT/gitlab.po +++ b/locale/pt_PT/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/ro_RO/gitlab.po b/locale/ro_RO/gitlab.po index 6b40862685d..0ac93f59034 100644 --- a/locale/ro_RO/gitlab.po +++ b/locale/ro_RO/gitlab.po @@ -16470,7 +16470,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/ru/gitlab.po b/locale/ru/gitlab.po index f0d5c6afc5f..9c0e8ab5a19 100644 --- a/locale/ru/gitlab.po +++ b/locale/ru/gitlab.po @@ -16558,7 +16558,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/sk_SK/gitlab.po b/locale/sk_SK/gitlab.po index ac90c490f1a..45fc05f8a56 100644 --- a/locale/sk_SK/gitlab.po +++ b/locale/sk_SK/gitlab.po @@ -16558,7 +16558,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/sq_AL/gitlab.po b/locale/sq_AL/gitlab.po index 30ac40fcfd5..70947dc0aba 100644 --- a/locale/sq_AL/gitlab.po +++ b/locale/sq_AL/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/sr_CS/gitlab.po b/locale/sr_CS/gitlab.po index 14a837f6957..09534393e23 100644 --- a/locale/sr_CS/gitlab.po +++ b/locale/sr_CS/gitlab.po @@ -16470,7 +16470,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/sr_SP/gitlab.po b/locale/sr_SP/gitlab.po index ba836cc6b0b..a612079f1c5 100644 --- a/locale/sr_SP/gitlab.po +++ b/locale/sr_SP/gitlab.po @@ -16470,7 +16470,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/sv_SE/gitlab.po b/locale/sv_SE/gitlab.po index 1f7ad2d35fb..9915b454489 100644 --- a/locale/sv_SE/gitlab.po +++ b/locale/sv_SE/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/sw_KE/gitlab.po b/locale/sw_KE/gitlab.po index 9ba58b06425..55714be9fbc 100644 --- a/locale/sw_KE/gitlab.po +++ b/locale/sw_KE/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/tr_TR/gitlab.po b/locale/tr_TR/gitlab.po index e2434b056a6..0f69fbf389d 100644 --- a/locale/tr_TR/gitlab.po +++ b/locale/tr_TR/gitlab.po @@ -16382,7 +16382,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/uk/gitlab.po b/locale/uk/gitlab.po index 8511ce52d39..b86a1ec198c 100644 --- a/locale/uk/gitlab.po +++ b/locale/uk/gitlab.po @@ -16558,7 +16558,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "Для збереження швидкодії відображаються лише %{display_size} із %{real_size} файлів." -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/vi_VN/gitlab.po b/locale/vi_VN/gitlab.po index a7249349838..508b0e0730b 100644 --- a/locale/vi_VN/gitlab.po +++ b/locale/vi_VN/gitlab.po @@ -16294,7 +16294,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/zh_CN/gitlab.po b/locale/zh_CN/gitlab.po index 4b19f016a59..fe80ec73cd5 100644 --- a/locale/zh_CN/gitlab.po +++ b/locale/zh_CN/gitlab.po @@ -16294,7 +16294,7 @@ msgstr "请将%{link} 页面连接到您的 Jaeger 服务器,以便在 GitLab msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "为了保持性能,仅显示文件中的 %{display_size}/%{real_size}。" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/zh_HK/gitlab.po b/locale/zh_HK/gitlab.po index e1050515e4d..c829642a42e 100644 --- a/locale/zh_HK/gitlab.po +++ b/locale/zh_HK/gitlab.po @@ -16294,7 +16294,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/locale/zh_TW/gitlab.po b/locale/zh_TW/gitlab.po index 89f48dcb07f..ee2278bfc64 100644 --- a/locale/zh_TW/gitlab.po +++ b/locale/zh_TW/gitlab.po @@ -16294,7 +16294,7 @@ msgstr "" msgid "To preserve performance only %{display_size} of %{real_size} files are displayed." msgstr "" -msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visiblity to private." +msgid "To protect this issue's confidentiality, %{link_start}fork the project%{link_end} and set the forks visibility to private." msgstr "" msgid "To protect this issue's confidentiality, a private fork of this project was selected." diff --git a/scripts/review_apps/automated_cleanup.rb b/scripts/review_apps/automated_cleanup.rb index 731903f823b..c7ab8829088 100755 --- a/scripts/review_apps/automated_cleanup.rb +++ b/scripts/review_apps/automated_cleanup.rb @@ -138,7 +138,7 @@ class AutomatedCleanup releases_names = releases.map(&:name) helm.delete(release_name: releases_names) - kubernetes.cleanup(release_name: releases_names) + kubernetes.cleanup(release_name: releases_names, wait: false) rescue Quality::HelmClient::CommandFailedError => ex raise ex unless ignore_exception?(ex.message, IGNORED_HELM_ERRORS) diff --git a/spec/features/projects/compare_spec.rb b/spec/features/projects/compare_spec.rb index 34bde29c8da..bdde04eec76 100644 --- a/spec/features/projects/compare_spec.rb +++ b/spec/features/projects/compare_spec.rb @@ -136,7 +136,7 @@ describe "Compare", :js do def select_using_dropdown(dropdown_type, selection, commit: false) dropdown = find(".js-compare-#{dropdown_type}-dropdown") dropdown.find(".compare-dropdown-toggle").click - # find input before using to wait for the inputs visiblity + # find input before using to wait for the inputs visibility dropdown.find('.dropdown-menu') dropdown.fill_in("Filter by Git revision", with: selection) wait_for_requests @@ -144,7 +144,7 @@ describe "Compare", :js do if commit dropdown.find('input[type="search"]').send_keys(:return) else - # find before all to wait for the items visiblity + # find before all to wait for the items visibility dropdown.find("a[data-ref=\"#{selection}\"]", match: :first) dropdown.all("a[data-ref=\"#{selection}\"]").last.click end diff --git a/spec/frontend/confidential_merge_request/components/__snapshots__/project_form_group_spec.js.snap b/spec/frontend/confidential_merge_request/components/__snapshots__/project_form_group_spec.js.snap index 47bdc677068..3c603c7f573 100644 --- a/spec/frontend/confidential_merge_request/components/__snapshots__/project_form_group_spec.js.snap +++ b/spec/frontend/confidential_merge_request/components/__snapshots__/project_form_group_spec.js.snap @@ -26,7 +26,7 @@ exports[`Confidential merge request project form group component renders empty s > fork the project - and set the forks visiblity to private. + and set the forks visibility to private. fork the project - and set the forks visiblity to private. + and set the forks visibility to private. { }); describe('showOpenInCodeSandbox', () => { - it('returns true when visiblity is public', () => { + it('returns true when visibility is public', () => { createComponent({ getters: { currentProject: () => ({ visibility: 'public' }) } }); expect(wrapper.vm.showOpenInCodeSandbox).toBe(true); }); - it('returns false when visiblity is private', () => { + it('returns false when visibility is private', () => { createComponent({ getters: { currentProject: () => ({ visibility: 'private' }) } }); expect(wrapper.vm.showOpenInCodeSandbox).toBe(false); diff --git a/spec/lib/bitbucket/representation/pull_request_spec.rb b/spec/lib/bitbucket/representation/pull_request_spec.rb index 70b51b8efec..6a9df0e5099 100644 --- a/spec/lib/bitbucket/representation/pull_request_spec.rb +++ b/spec/lib/bitbucket/representation/pull_request_spec.rb @@ -20,6 +20,7 @@ describe Bitbucket::Representation::PullRequest do describe '#state' do it { expect(described_class.new({ 'state' => 'MERGED' }).state).to eq('merged') } it { expect(described_class.new({ 'state' => 'DECLINED' }).state).to eq('closed') } + it { expect(described_class.new({ 'state' => 'SUPERSEDED' }).state).to eq('closed') } it { expect(described_class.new({}).state).to eq('opened') } end diff --git a/spec/lib/gitlab/ci/config/entry/job_spec.rb b/spec/lib/gitlab/ci/config/entry/job_spec.rb index d3eb5a9663f..9fe18caf689 100644 --- a/spec/lib/gitlab/ci/config/entry/job_spec.rb +++ b/spec/lib/gitlab/ci/config/entry/job_spec.rb @@ -23,7 +23,7 @@ describe Gitlab::Ci::Config::Entry::Job do let(:result) do %i[before_script script stage type after_script cache - image services only except rules variables artifacts + image services only except rules needs variables artifacts environment coverage retry] end @@ -384,21 +384,6 @@ describe Gitlab::Ci::Config::Entry::Job do end context 'when has needs' do - context 'that are not a array of strings' do - let(:config) do - { - stage: 'test', - script: 'echo', - needs: 'build-job' - } - end - - it 'returns error about invalid type' do - expect(entry).not_to be_valid - expect(entry.errors).to include 'job needs should be an array of strings' - end - end - context 'when have dependencies that are not subset of needs' do let(:config) do { diff --git a/spec/lib/gitlab/ci/config/entry/need_spec.rb b/spec/lib/gitlab/ci/config/entry/need_spec.rb new file mode 100644 index 00000000000..d119e604900 --- /dev/null +++ b/spec/lib/gitlab/ci/config/entry/need_spec.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe ::Gitlab::Ci::Config::Entry::Need do + subject(:need) { described_class.new(config) } + + context 'when job is specified' do + let(:config) { 'job_name' } + + describe '#valid?' do + it { is_expected.to be_valid } + end + + describe '#value' do + it 'returns job needs configuration' do + expect(need.value).to eq(name: 'job_name') + end + end + end + + context 'when need is empty' do + let(:config) { '' } + + describe '#valid?' do + it { is_expected.not_to be_valid } + end + + describe '#errors' do + it 'is returns an error about an empty config' do + expect(need.errors) + .to contain_exactly("job config can't be blank") + end + end + end +end diff --git a/spec/lib/gitlab/ci/config/entry/needs_spec.rb b/spec/lib/gitlab/ci/config/entry/needs_spec.rb new file mode 100644 index 00000000000..f4a76b52d30 --- /dev/null +++ b/spec/lib/gitlab/ci/config/entry/needs_spec.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe ::Gitlab::Ci::Config::Entry::Needs do + subject(:needs) { described_class.new(config) } + + before do + needs.metadata[:allowed_needs] = %i[job] + end + + describe 'validations' do + before do + needs.compose! + end + + context 'when entry config value is correct' do + let(:config) { ['job_name'] } + + describe '#valid?' do + it { is_expected.to be_valid } + end + end + + context 'when config value has wrong type' do + let(:config) { 123 } + + describe '#valid?' do + it { is_expected.not_to be_valid } + end + + describe '#errors' do + it 'returns error about incorrect type' do + expect(needs.errors) + .to include('needs config can only be a hash or an array') + end + end + end + + context 'when wrong needs type is used' do + let(:config) { [123] } + + describe '#valid?' do + it { is_expected.not_to be_valid } + end + + describe '#errors' do + it 'returns error about incorrect type' do + expect(needs.errors).to contain_exactly( + 'need has an unsupported type') + end + end + end + end + + describe '.compose!' do + context 'when valid job entries composed' do + let(:config) { %w[first_job_name second_job_name] } + + before do + needs.compose! + end + + describe '#value' do + it 'returns key value' do + expect(needs.value).to eq( + job: [ + { name: 'first_job_name' }, + { name: 'second_job_name' } + ] + ) + end + end + + describe '#descendants' do + it 'creates valid descendant nodes' do + expect(needs.descendants.count).to eq 2 + expect(needs.descendants) + .to all(be_an_instance_of(::Gitlab::Ci::Config::Entry::Need)) + end + end + end + end +end diff --git a/spec/lib/gitlab/ci/yaml_processor_spec.rb b/spec/lib/gitlab/ci/yaml_processor_spec.rb index c7a90d2a254..375075ce8f3 100644 --- a/spec/lib/gitlab/ci/yaml_processor_spec.rb +++ b/spec/lib/gitlab/ci/yaml_processor_spec.rb @@ -1253,7 +1253,7 @@ module Gitlab end end - describe "Needs" do + describe "Job Needs" do let(:needs) { } let(:dependencies) { } @@ -1293,12 +1293,7 @@ module Gitlab stage: "test", stage_idx: 2, name: "test1", - options: { - script: ["test"], - # This does not make sense, there is a follow-up: - # https://gitlab.com/gitlab-org/gitlab-foss/issues/65569 - bridge_needs: %w[build1 build2] - }, + options: { script: ["test"] }, needs_attributes: [ { name: "build1" }, { name: "build2" } @@ -1310,12 +1305,6 @@ module Gitlab end end - context 'needs two builds defined as symbols' do - let(:needs) { [:build1, :build2] } - - it { expect { subject }.not_to raise_error } - end - context 'undefined need' do let(:needs) { ['undefined'] } diff --git a/spec/lib/gitlab/experimentation_spec.rb b/spec/lib/gitlab/experimentation_spec.rb index cceeb15b05d..9be6ace3be5 100644 --- a/spec/lib/gitlab/experimentation_spec.rb +++ b/spec/lib/gitlab/experimentation_spec.rb @@ -73,22 +73,10 @@ describe Gitlab::Experimentation do end describe 'URL parameter to force enable experiment' do - context 'is not present' do - # Disabled until https://gitlab.com/gitlab-org/gitlab/issues/34942 is solved properly - xit 'returns false' do - get :index, params: { force_experiment: :test_experiment2 } + it 'returns true' do + get :index, params: { force_experiment: :test_experiment } - expect(controller.experiment_enabled?(:test_experiment)).to be_falsey - end - end - - context 'is present' do - # Disabled until https://gitlab.com/gitlab-org/gitlab/issues/34942 is solved properly - xit 'returns true' do - get :index, params: { force_experiment: :test_experiment } - - expect(controller.experiment_enabled?(:test_experiment)).to be_truthy - end + expect(controller.experiment_enabled?(:test_experiment)).to be_truthy end end end diff --git a/spec/lib/quality/kubernetes_client_spec.rb b/spec/lib/quality/kubernetes_client_spec.rb index a42f6151a5e..5bac102ac41 100644 --- a/spec/lib/quality/kubernetes_client_spec.rb +++ b/spec/lib/quality/kubernetes_client_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Quality::KubernetesClient do expect(Gitlab::Popen).to receive(:popen_with_detail) .with([%(kubectl --namespace "#{namespace}" delete ) \ 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa ' \ - "--now --ignore-not-found --include-uninitialized -l release=\"#{release_name}\""]) + "--now --ignore-not-found --include-uninitialized --wait=true -l release=\"#{release_name}\""]) .and_return(Gitlab::Popen::Result.new([], '', '', double(success?: false))) expect { subject.cleanup(release_name: release_name) }.to raise_error(described_class::CommandFailedError) @@ -23,7 +23,7 @@ RSpec.describe Quality::KubernetesClient do expect(Gitlab::Popen).to receive(:popen_with_detail) .with([%(kubectl --namespace "#{namespace}" delete ) \ 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa ' \ - "--now --ignore-not-found --include-uninitialized -l release=\"#{release_name}\""]) + "--now --ignore-not-found --include-uninitialized --wait=true -l release=\"#{release_name}\""]) .and_return(Gitlab::Popen::Result.new([], '', '', double(success?: true))) # We're not verifying the output here, just silencing it @@ -37,7 +37,7 @@ RSpec.describe Quality::KubernetesClient do expect(Gitlab::Popen).to receive(:popen_with_detail) .with([%(kubectl --namespace "#{namespace}" delete ) \ 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa ' \ - "--now --ignore-not-found --include-uninitialized -l 'release in (#{release_name.join(', ')})'"]) + "--now --ignore-not-found --include-uninitialized --wait=true -l 'release in (#{release_name.join(', ')})'"]) .and_return(Gitlab::Popen::Result.new([], '', '', double(success?: false))) expect { subject.cleanup(release_name: release_name) }.to raise_error(described_class::CommandFailedError) @@ -47,12 +47,35 @@ RSpec.describe Quality::KubernetesClient do expect(Gitlab::Popen).to receive(:popen_with_detail) .with([%(kubectl --namespace "#{namespace}" delete ) \ 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa ' \ - "--now --ignore-not-found --include-uninitialized -l 'release in (#{release_name.join(', ')})'"]) + "--now --ignore-not-found --include-uninitialized --wait=true -l 'release in (#{release_name.join(', ')})'"]) .and_return(Gitlab::Popen::Result.new([], '', '', double(success?: true))) # We're not verifying the output here, just silencing it expect { subject.cleanup(release_name: release_name) }.to output.to_stdout end end + + context 'with `wait: false`' do + it 'raises an error if the Kubernetes command fails' do + expect(Gitlab::Popen).to receive(:popen_with_detail) + .with([%(kubectl --namespace "#{namespace}" delete ) \ + 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa ' \ + "--now --ignore-not-found --include-uninitialized --wait=false -l release=\"#{release_name}\""]) + .and_return(Gitlab::Popen::Result.new([], '', '', double(success?: false))) + + expect { subject.cleanup(release_name: release_name, wait: false) }.to raise_error(described_class::CommandFailedError) + end + + it 'calls kubectl with the correct arguments' do + expect(Gitlab::Popen).to receive(:popen_with_detail) + .with([%(kubectl --namespace "#{namespace}" delete ) \ + 'ingress,svc,pdb,hpa,deploy,statefulset,job,pod,secret,configmap,pvc,secret,clusterrole,clusterrolebinding,role,rolebinding,sa ' \ + "--now --ignore-not-found --include-uninitialized --wait=false -l release=\"#{release_name}\""]) + .and_return(Gitlab::Popen::Result.new([], '', '', double(success?: true))) + + # We're not verifying the output here, just silencing it + expect { subject.cleanup(release_name: release_name, wait: false) }.to output.to_stdout + end + end end end