diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-05-27 06:08:03 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-05-27 06:08:03 +0300 |
commit | c258498bd253e0dbb038d51f237cee1ebf0d0f56 (patch) | |
tree | 2fafd83d60bf1b104b2bd39b199c79ddf91564a7 /app | |
parent | 17f6b320a11fc5bc1261994a7a93b34096e365e3 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
6 files changed, 73 insertions, 32 deletions
diff --git a/app/assets/javascripts/projects/project_visibility.js b/app/assets/javascripts/projects/project_visibility.js index c962554c9f4..d299e106b14 100644 --- a/app/assets/javascripts/projects/project_visibility.js +++ b/app/assets/javascripts/projects/project_visibility.js @@ -1,4 +1,3 @@ -import $ from 'jquery'; import { escape } from 'lodash'; import { __, sprintf } from '~/locale'; import eventHub from '~/projects/new/event_hub'; @@ -63,9 +62,8 @@ export default function initProjectVisibilitySelector() { const namespaceSelector = document.querySelector('select.js-select-namespace'); if (namespaceSelector) { - $('.select2.js-select-namespace').on('change', () => - handleSelect2DropdownChange(namespaceSelector), - ); + const el = document.querySelector('.select2.js-select-namespace'); + el.addEventListener('change', () => handleSelect2DropdownChange(namespaceSelector)); handleSelect2DropdownChange(namespaceSelector); } } diff --git a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue index 8b410926c46..45958d7fb8d 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue @@ -113,7 +113,7 @@ export default { data-testid="ok" category="primary" class="gl-mt-2" - variant="info" + variant="confirm" :href="pipelinePath" :data-track-property="humanAccess" :data-track-value="$options.SP_SHOW_TRACK_VALUE" diff --git a/app/models/bulk_imports/entity.rb b/app/models/bulk_imports/entity.rb index dee533944e9..cad2fafe640 100644 --- a/app/models/bulk_imports/entity.rb +++ b/app/models/bulk_imports/entity.rb @@ -99,18 +99,7 @@ class BulkImports::Entity < ApplicationRecord end def pipeline_exists?(name) - pipelines.any? { |_, pipeline| pipeline.to_s == name.to_s } - end - - def create_pipeline_trackers! - self.class.transaction do - pipelines.each do |stage, pipeline| - trackers.create!( - stage: stage, - pipeline_name: pipeline - ) - end - end + pipelines.any? { _1[:pipeline].to_s == name.to_s } end def entity_type diff --git a/app/serializers/merge_request_widget_entity.rb b/app/serializers/merge_request_widget_entity.rb index 5bf91ed0a51..cf984207ad1 100644 --- a/app/serializers/merge_request_widget_entity.rb +++ b/app/serializers/merge_request_widget_entity.rb @@ -128,20 +128,6 @@ class MergeRequestWidgetEntity < Grape::Entity end end - expose :codeclimate, if: -> (mr, _) { head_pipeline_downloadable_path_for_report_type(:codequality) } do - expose :head_path do |merge_request| - head_pipeline_downloadable_path_for_report_type(:codequality) - end - - expose :base_path do |merge_request| - if use_merge_base_with_merged_results? - merge_base_pipeline_downloadable_path_for_report_type(:codequality) - else - base_pipeline_downloadable_path_for_report_type(:codequality) - end - end - end - expose :security_reports_docs_path do |merge_request| help_page_path('user/application_security/index.md', anchor: 'view-security-scan-information-in-merge-requests') end diff --git a/app/services/bulk_imports/create_pipeline_trackers_service.rb b/app/services/bulk_imports/create_pipeline_trackers_service.rb new file mode 100644 index 00000000000..5c9c68e62b5 --- /dev/null +++ b/app/services/bulk_imports/create_pipeline_trackers_service.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true + +module BulkImports + class CreatePipelineTrackersService + def initialize(entity) + @entity = entity + end + + def execute! + entity.class.transaction do + entity.pipelines.each do |pipeline| + status = skip_pipeline?(pipeline) ? -2 : 0 + + entity.trackers.create!( + stage: pipeline[:stage], + pipeline_name: pipeline[:pipeline], + status: status + ) + end + end + end + + private + + attr_reader :entity + + def skip_pipeline?(pipeline) + return false unless source_version.valid? + + minimum_version, maximum_version = pipeline.values_at(:minimum_source_version, :maximum_source_version) + + if minimum_version && non_patch_source_version < Gitlab::VersionInfo.parse(minimum_version) + log_skipped_pipeline(pipeline, minimum_version, maximum_version) + return true + end + + if maximum_version && non_patch_source_version > Gitlab::VersionInfo.parse(maximum_version) + log_skipped_pipeline(pipeline, minimum_version, maximum_version) + return true + end + + false + end + + def source_version + @source_version ||= entity.bulk_import.source_version_info + end + + def non_patch_source_version + Gitlab::VersionInfo.new(source_version.major, source_version.minor, 0) + end + + def log_skipped_pipeline(pipeline, minimum_version, maximum_version) + logger.info( + message: 'Pipeline skipped as source instance version not compatible with pipeline', + entity_id: entity.id, + pipeline_name: pipeline[:pipeline], + minimum_source_version: minimum_version, + maximum_source_version: maximum_version, + source_version: source_version.to_s + ) + end + + def logger + @logger ||= Gitlab::Import::Logger.build + end + end +end diff --git a/app/workers/bulk_import_worker.rb b/app/workers/bulk_import_worker.rb index 157586ca397..c7efc92b25e 100644 --- a/app/workers/bulk_import_worker.rb +++ b/app/workers/bulk_import_worker.rb @@ -20,7 +20,7 @@ class BulkImportWorker # rubocop:disable Scalability/IdempotentWorker @bulk_import.start! if @bulk_import.created? created_entities.find_each do |entity| - entity.create_pipeline_trackers! + BulkImports::CreatePipelineTrackersService.new(entity).execute! BulkImports::ExportRequestWorker.perform_async(entity.id) BulkImports::EntityWorker.perform_async(entity.id) |