Sha256: 430631cf8e4441d72a7b77f930161ceaaa31fff9e1b7325406264356c17b621d

Contents?: true

Size: 943 Bytes

Versions: 7

Compression:

Stored size: 943 Bytes

Contents

# frozen_string_literal: true

require_relative 'base_command_builder'

module Gitlab
  module Triage
    module CommandBuilders
      class LabelCommandBuilder < BaseCommandBuilder
        def build_command
          ensure_labels_exist!

          super
        end

        private

        def ensure_labels_exist!
          items.each do |label|
            source_id_key = resource.key?(:group_id) ? :group_id : :project_id
            label_opts = {
              source_id_key => resource[source_id_key],
              name: label
            }

            unless Resource::Label.new(label_opts, network: network).exist?
              raise Resource::Label::LabelDoesntExistError,
                "Label `#{label}` doesn't exist!"
            end
          end
        end

        def slash_command_string
          "/label"
        end

        def format_item(item)
          "~\"#{item}\""
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
gitlab-triage-1.44.3 lib/gitlab/triage/command_builders/label_command_builder.rb
gitlab-triage-1.44.2 lib/gitlab/triage/command_builders/label_command_builder.rb
gitlab-triage-1.44.1 lib/gitlab/triage/command_builders/label_command_builder.rb
gitlab-triage-1.44.0 lib/gitlab/triage/command_builders/label_command_builder.rb
gitlab-triage-1.43.2 lib/gitlab/triage/command_builders/label_command_builder.rb
gitlab-triage-1.43.1 lib/gitlab/triage/command_builders/label_command_builder.rb
gitlab-triage-1.43.0 lib/gitlab/triage/command_builders/label_command_builder.rb