Guest User

Untitled

a guest
May 1st, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. namespace :trac do
  2. desc 'Includes dependencies (for internal use)'
  3. task :include_dependencies => [] do
  4. require 'mechanize'
  5. require 'logger'
  6. $KCODE = 'u'
  7. require 'jcode'
  8. require 'active_support'
  9. require 'active_support/multibyte'
  10. end
  11.  
  12. desc 'Imports tickets to Trac'
  13. task :import => [:include_dependencies] do
  14. @user = ENV['user']
  15. @pass = ENV['pass']
  16. @url = ENV['url']
  17. @file = ENV['file']
  18. @owner = ENV['owner'] ||= @user
  19.  
  20. @tickets = File.read(@file).split("\n").map{|a|a.strip}.uniq.delete_if{|a| a.empty? }
  21.  
  22. agent = WWW::Mechanize.new
  23. agent.basic_auth(@user, @pass)
  24. p = agent.get(@url)
  25.  
  26. @tickets.each do |t|
  27. page = agent.click p.links.text(/New Ticket/)
  28. frm = page.forms[1]
  29.  
  30. flds = {
  31. :field_summary => t.chars[0..50] + (t.length > 50 ? '...' : ''),
  32. :field_description => t,
  33. :field_owner => @owner
  34. }
  35.  
  36. flds.each do |f, v|
  37. frm.field(f.to_s).value = v
  38. end
  39.  
  40. p = agent.submit(frm)
  41. end
  42. end
  43. end
Add Comment
Please, Sign In to add comment