Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace :trac do
- desc 'Includes dependencies (for internal use)'
- 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'] ||= @user
- @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
Add Comment
Please, Sign In to add comment