importing.rb revision 08070fff5598f6d5d7662e321becf59f18d00176
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen# * pending - Job is enqueued.
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen# * fetching - Fetching new commits from the remote repository.
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen# * processing - Inserting fetched commits into the local database-
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen# * done - Everthing is fine, nothing to do-
1ed1ad066e4aa313e33dafedb892fb84946cacebTimo Sirainen# * failed - Something has gone wrong.
b200bc3875fa06d42c8619865cc306c3297fcaccAki Tuomi STATES = %w( pending fetching processing done failed )
ca44a6ba994aaa3231a20ef6e046dfd97a8dcd2dTimo Sirainen scope :with_source, where("source_type IS NOT null")
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen # Ready for pulling
419cf63077e755935ce105747d6ebc67b7d38a7fTimo Sirainen .where("imported_at IS NULL or imported_at < ?", IMPORT_INTERVAL.ago )
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen validates_with SourceTypeValidator, if: :remote?
146240408e677e99e579d1feed92689585cc25d4Timo Sirainen after_create ->{ async_remote :clone }, if: :remote?
save!
args = []
raise Repository::ImportError, "#{source} is not a #{type} repository" unless GitRepository.send "is_#{type}_repository?", source