Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2020-11-20 09:09:06 +00:00
parent 13cacc20b0
commit d2add0302c
12 changed files with 76 additions and 89 deletions

View File

@ -42,7 +42,7 @@ export function membersBeforeSave(members) {
title: sanitize(title), title: sanitize(title),
search: sanitize(`${member.username} ${member.name}`), search: sanitize(`${member.username} ${member.name}`),
icon: avatarIcon, icon: avatarIcon,
availability: member.availability, availability: member?.availability,
}; };
}); });
} }

View File

@ -1,7 +1,6 @@
<script> <script>
import { isNumber } from 'lodash'; import { isNumber } from 'lodash';
import ArtifactsApp from './artifacts_list_app.vue'; import ArtifactsApp from './artifacts_list_app.vue';
import Deployment from './deployment/deployment.vue';
import MrWidgetContainer from './mr_widget_container.vue'; import MrWidgetContainer from './mr_widget_container.vue';
import MrWidgetPipeline from './mr_widget_pipeline.vue'; import MrWidgetPipeline from './mr_widget_pipeline.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
@ -18,7 +17,7 @@ export default {
name: 'MrWidgetPipelineContainer', name: 'MrWidgetPipelineContainer',
components: { components: {
ArtifactsApp, ArtifactsApp,
Deployment, Deployment: () => import('./deployment/deployment.vue'),
MrWidgetContainer, MrWidgetContainer,
MrWidgetPipeline, MrWidgetPipeline,
MergeTrainPositionIndicator: () => MergeTrainPositionIndicator: () =>

View File

@ -16,7 +16,6 @@ import WidgetHeader from './components/mr_widget_header.vue';
import WidgetSuggestPipeline from './components/mr_widget_suggest_pipeline.vue'; import WidgetSuggestPipeline from './components/mr_widget_suggest_pipeline.vue';
import WidgetMergeHelp from './components/mr_widget_merge_help.vue'; import WidgetMergeHelp from './components/mr_widget_merge_help.vue';
import MrWidgetPipelineContainer from './components/mr_widget_pipeline_container.vue'; import MrWidgetPipelineContainer from './components/mr_widget_pipeline_container.vue';
import Deployment from './components/deployment/deployment.vue';
import WidgetRelatedLinks from './components/mr_widget_related_links.vue'; import WidgetRelatedLinks from './components/mr_widget_related_links.vue';
import MrWidgetAlertMessage from './components/mr_widget_alert_message.vue'; import MrWidgetAlertMessage from './components/mr_widget_alert_message.vue';
import MergedState from './components/states/mr_widget_merged.vue'; import MergedState from './components/states/mr_widget_merged.vue';
@ -63,7 +62,6 @@ export default {
'mr-widget-suggest-pipeline': WidgetSuggestPipeline, 'mr-widget-suggest-pipeline': WidgetSuggestPipeline,
'mr-widget-merge-help': WidgetMergeHelp, 'mr-widget-merge-help': WidgetMergeHelp,
MrWidgetPipelineContainer, MrWidgetPipelineContainer,
Deployment,
'mr-widget-related-links': WidgetRelatedLinks, 'mr-widget-related-links': WidgetRelatedLinks,
MrWidgetAlertMessage, MrWidgetAlertMessage,
'mr-widget-merged': MergedState, 'mr-widget-merged': MergedState,

View File

@ -46,8 +46,9 @@ module Users
username: user.username, username: user.username,
name: user.name, name: user.name,
avatar_url: user.avatar_url, avatar_url: user.avatar_url,
availability: user&.status&.availability availability: nil
} }
# Return nil for availability for now due to https://gitlab.com/gitlab-org/gitlab/-/issues/285442
end end
def group_as_hash(group, group_counts) def group_as_hash(group, group_counts)

View File

@ -132,7 +132,7 @@ class ObjectStoreSettings
# If a storage type such as Pages defines its own connection and does not # If a storage type such as Pages defines its own connection and does not
# use Workhorse acceleration, we allow it to override the consolidated form. # use Workhorse acceleration, we allow it to override the consolidated form.
next if allowed_storage_specific_settings?(store_type, section) next if allowed_storage_specific_settings?(store_type, section.to_h)
# Map bucket (external name) -> remote_directory (internal representation) # Map bucket (external name) -> remote_directory (internal representation)
target_config['remote_directory'] = target_config.delete('bucket') target_config['remote_directory'] = target_config.delete('bucket')

View File

@ -3,10 +3,77 @@
module BulkImports module BulkImports
module Pipeline module Pipeline
extend ActiveSupport::Concern extend ActiveSupport::Concern
include Gitlab::ClassAttributes
included do included do
include Attributes
include Runner include Runner
private
def extractors
@extractors ||= self.class.extractors.map(&method(:instantiate))
end
def transformers
@transformers ||= self.class.transformers.map(&method(:instantiate))
end
def loaders
@loaders ||= self.class.loaders.map(&method(:instantiate))
end
def after_run
@after_run ||= self.class.after_run_callback
end
def pipeline_name
@pipeline ||= self.class.name
end
def instantiate(class_config)
class_config[:klass].new(class_config[:options])
end
end
class_methods do
def extractor(klass, options = nil)
add_attribute(:extractors, klass, options)
end
def transformer(klass, options = nil)
add_attribute(:transformers, klass, options)
end
def loader(klass, options = nil)
add_attribute(:loaders, klass, options)
end
def after_run(&block)
class_attributes[:after_run] = block
end
def extractors
class_attributes[:extractors]
end
def transformers
class_attributes[:transformers]
end
def loaders
class_attributes[:loaders]
end
def after_run_callback
class_attributes[:after_run]
end
private
def add_attribute(sym, klass, options)
class_attributes[sym] ||= []
class_attributes[sym] << { klass: klass, options: options }
end
end end
end end
end end

View File

@ -1,49 +0,0 @@
# frozen_string_literal: true
module BulkImports
module Pipeline
module Attributes
extend ActiveSupport::Concern
include Gitlab::ClassAttributes
class_methods do
def extractor(klass, options = nil)
add_attribute(:extractors, klass, options)
end
def transformer(klass, options = nil)
add_attribute(:transformers, klass, options)
end
def loader(klass, options = nil)
add_attribute(:loaders, klass, options)
end
def after_run(&block)
class_attributes[:after_run] = block
end
def add_attribute(sym, klass, options)
class_attributes[sym] ||= []
class_attributes[sym] << { klass: klass, options: options }
end
def extractors
class_attributes[:extractors]
end
def transformers
class_attributes[:transformers]
end
def loaders
class_attributes[:loaders]
end
def after_run_callback
class_attributes[:after_run]
end
end
end
end
end

View File

@ -5,34 +5,6 @@ module BulkImports
module Runner module Runner
extend ActiveSupport::Concern extend ActiveSupport::Concern
included do
private
def extractors
@extractors ||= self.class.extractors.map(&method(:instantiate))
end
def transformers
@transformers ||= self.class.transformers.map(&method(:instantiate))
end
def loaders
@loaders ||= self.class.loaders.map(&method(:instantiate))
end
def after_run
@after_run ||= self.class.after_run_callback
end
def pipeline_name
@pipeline ||= self.class.name
end
def instantiate(class_config)
class_config[:klass].new(class_config[:options])
end
end
def run(context) def run(context)
info(context, message: "Pipeline started", pipeline: pipeline_name) info(context, message: "Pipeline started", pipeline: pipeline_name)

View File

@ -35,6 +35,7 @@ Migration/UpdateLargeTable:
- :taggings - :taggings
- :todos - :todos
- :users - :users
- :user_preferences
- :web_hook_logs - :web_hook_logs
DeniedMethods: DeniedMethods:
- :change_column_type_concurrently - :change_column_type_concurrently

View File

@ -72,7 +72,6 @@ RSpec.describe BulkImports::Groups::Pipelines::GroupPipeline do
describe 'pipeline parts' do describe 'pipeline parts' do
it { expect(described_class).to include_module(BulkImports::Pipeline) } it { expect(described_class).to include_module(BulkImports::Pipeline) }
it { expect(described_class).to include_module(BulkImports::Pipeline::Attributes) }
it { expect(described_class).to include_module(BulkImports::Pipeline::Runner) } it { expect(described_class).to include_module(BulkImports::Pipeline::Runner) }
it 'has extractors' do it 'has extractors' do

View File

@ -55,7 +55,6 @@ RSpec.describe BulkImports::Groups::Pipelines::SubgroupEntitiesPipeline do
describe 'pipeline parts' do describe 'pipeline parts' do
it { expect(described_class).to include_module(BulkImports::Pipeline) } it { expect(described_class).to include_module(BulkImports::Pipeline) }
it { expect(described_class).to include_module(BulkImports::Pipeline::Attributes) }
it { expect(described_class).to include_module(BulkImports::Pipeline::Runner) } it { expect(described_class).to include_module(BulkImports::Pipeline::Runner) }
it 'has extractors' do it 'has extractors' do

View File

@ -2,7 +2,7 @@
require 'spec_helper' require 'spec_helper'
RSpec.describe BulkImports::Pipeline::Attributes do RSpec.describe BulkImports::Pipeline do
describe 'pipeline attributes' do describe 'pipeline attributes' do
before do before do
stub_const('BulkImports::Extractor', Class.new) stub_const('BulkImports::Extractor', Class.new)
@ -10,7 +10,7 @@ RSpec.describe BulkImports::Pipeline::Attributes do
stub_const('BulkImports::Loader', Class.new) stub_const('BulkImports::Loader', Class.new)
klass = Class.new do klass = Class.new do
include BulkImports::Pipeline::Attributes include BulkImports::Pipeline
extractor BulkImports::Extractor, { foo: :bar } extractor BulkImports::Extractor, { foo: :bar }
transformer BulkImports::Transformer, { foo: :bar } transformer BulkImports::Transformer, { foo: :bar }