- Author
-
Niklas Cathor
- Author
-
David Copeland
- License
-
See LICENSE in source distribution
For more information on the Trac XML-RPC see the plugin’s page on trac-hacks.com
Thanks to the original author, Niklas Cathor, who has done most of the work.
Note that I (David Copeland) will probably not be making more changes to this, as my main reason for picking this up was that I am using Trac where I work. We are moving away from Trac, so I have less need to do anything with this library. If someone is interested in claiming ownership, specifically owning the gem on Gemcutter, just let me know and I’ll hand it over.
# Only if you haven't set up gemcutter yet sudo gem install gemcutter sudo gem tumble # Once Gemcutter is setup sudo gem install trac4r
This wraps the Trac XML-RPC plugin.
require 'rubygems' require 'trac4r' # Note that you need to point to the XMLRPC root and not the root of the trac web interface trac = Trac.new("http://www.example.com/trac/project/xmlrpc","username","password") trac.tickets.list # get all tickets trac.tickets.get 2334 # Get ticket #2334
Receive one single ticket
ticket = trac.tickets.get 9 ticket.summary #=> 'foo' ticket.description #=> 'bar'
Scope the ticket
trac.tickets.list :include_closed => false
Create a new ticket
trac.tickets.create "summary", "description", :type => 'defect', :version => '1.0', :milestone => 'bug free' #=> 10
summary and description are required, the rest is optional. It can be one of the following: :severity, :milestone, :status, :type, :priority, :version, :reporter, :owner, :cc, :keywords
Trac’s backbone is tickets. The Tickets class contains many useful methods, but can also run arbitrary queries against Trac using a more Rubyesque syntax:
# Gets all tickets in the "Web" component with a status of either "assigned" # "accepted", or "new" available_web_tickets = trac.tickets.query(:component => 'Web', :status => [:assigned,:accepted,:new]) # Ticktes that are not closed unclosed_tickets = trac.tickets.query(:status => "!closed") # This is a bit wierd, the "!" in the first element means "none of these values" not_closed_nor_testing = trac.tickets.query(:status => ["!closed","test"])
:include:trac.rdoc