Skip to content
This repository has been archived by the owner on Jan 6, 2019. It is now read-only.

davetron5000/trac4r

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

trac4r: Ruby wrapper for the Trac XML-RPC API

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 RubyGems, just let me know and I’ll hand it over.

Install

gem install trac4r # use sudo if not using rvm

Overview

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

Tickets

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

Contributions

Although I’m not actively working on this, I’m happy to merge changes or additions that people find useful and push them to RubyGems. Just send me a pull request or email me patch.

More Info

About

Niklas Cathor's Ruby Trac XML-RPC Wrapper

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%