Report abuse


			
namespace :trac do
  task :include_dependencies => [] do
    require 'mechanize'
    require 'logger'
    $KCODE = 'u'
    require 'jcode'
    require 'active_support'
    require 'active_support/multibyte'
  end

  desc 'Imports tickets to Trac'
  task :import => [:include_dependencies] do
    @user = ENV['user']
    @pass = ENV['pass']
    @url  = ENV['url']
    @file = ENV['file']
    @owner = ENV['owner']

    @tickets = File.read(@file).split("\n").map{|a|a.strip}.uniq.delete_if{|a| a.empty? }

    agent = WWW::Mechanize.new
    agent.basic_auth(@user, @pass)  
    p = agent.get(@url)

    @tickets.each do |t|
      page = agent.click p.links.text(/New Ticket/)
      frm = page.forms[1]

      flds = {
        :field_summary => t.chars[0..50] + (t.length > 50 ? '...' : ''),
        :field_description => t,
        :field_owner => @owner
      }

      flds.each do |f, v|
        frm.field(f.to_s).value = v
      end

      p = agent.submit(frm)
    end
  end
end