Class: Gitlab::Ci::Tags::BulkInsert

Inherits:
Object
  • Object
show all
Includes:
Utils::StrongMemoize
Defined in:
lib/gitlab/ci/tags/bulk_insert.rb,
lib/gitlab/ci/tags/bulk_insert/no_config.rb,
lib/gitlab/ci/tags/bulk_insert/configuration_factory.rb,
lib/gitlab/ci/tags/bulk_insert/builds_tags_configuration.rb,
lib/gitlab/ci/tags/bulk_insert/runner_taggings_configuration.rb

Defined Under Namespace

Classes: BuildsTagsConfiguration, ConfigurationFactory, NoConfig, RunnerTaggingsConfiguration

Constant Summary collapse

TAGGINGS_BATCH_SIZE =
1000
TAGS_BATCH_SIZE =
500

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(taggables, config: nil) ⇒ BulkInsert

Returns a new instance of BulkInsert.



18
19
20
21
# File 'lib/gitlab/ci/tags/bulk_insert.rb', line 18

def initialize(taggables, config: nil)
  @taggables = taggables
  @config = config || ConfigurationFactory.new(taggables.first).build
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



12
13
14
# File 'lib/gitlab/ci/tags/bulk_insert.rb', line 12

def config
  @config
end

Class Method Details

.bulk_insert_tags!(taggables, config: nil) ⇒ Object



14
15
16
# File 'lib/gitlab/ci/tags/bulk_insert.rb', line 14

def self.bulk_insert_tags!(taggables, config: nil)
  Gitlab::Ci::Tags::BulkInsert.new(taggables, config: config).insert!
end

Instance Method Details

#insert!Object



23
24
25
26
27
# File 'lib/gitlab/ci/tags/bulk_insert.rb', line 23

def insert!
  return false if tag_list_by_taggable.empty?

  persist_build_tags!
end