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
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-05-27 06:08:03 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-05-27 06:08:03 +0300
commitc258498bd253e0dbb038d51f237cee1ebf0d0f56 (patch)
tree2fafd83d60bf1b104b2bd39b199c79ddf91564a7 /app
parent17f6b320a11fc5bc1261994a7a93b34096e365e3 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/projects/project_visibility.js6
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue2
-rw-r--r--app/models/bulk_imports/entity.rb13
-rw-r--r--app/serializers/merge_request_widget_entity.rb14
-rw-r--r--app/services/bulk_imports/create_pipeline_trackers_service.rb68
-rw-r--r--app/workers/bulk_import_worker.rb2
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)