importing.rb revision 93ff918a7a1656d812f27a767a976ea33da0921f
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger STATES = %w( pending processing done failed )
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger validates_inclusion_of :source_type, in: SOURCE_TYPES, if: :remote?
93ff918a7a1656d812f27a767a976ea33da0921fJulian Kornberger after_create :async_remote_clone, if: :remote?
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger # do not allow new actions if running
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger # enqueues a clone job
93ff918a7a1656d812f27a767a976ea33da0921fJulian Kornberger # enqueues a pull job
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger # enqueues a remote job
93ff918a7a1656d812f27a767a976ea33da0921fJulian Kornberger user = permissions.where(subject_type: User, role: 'owner').first!.subject
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger # creates a new repository and imports the contents from the remote repository
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger def import_remote(type, user, source, name, params={})
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger raise ArgumentError, "invalid source type: #{type}" unless SOURCE_TYPES.include?(type)
5422b48ab5841a2909cd9e53905dae4cd8418f0aJulian Kornberger raise Repository::ImportError, "#{source} is not a #{type} repository" unless GitRepository.send "is_#{type}_repository?", source