Trac api
There are many ways to install trac, I use the next one:
# apt-get install apache2-utils # for ubuntu
virtualenv .env --no-site-packages
source .env/bin/activate
easy_install Trac==1.0
easy_install -Z -U http://trac-hacks.org/svn/xmlrpcplugin/trunk
mkdir /PATH_TO_TRAC/mytrac
trac-admin /PATH_TO_TRAC/mytrac initenv # set trac name and database
vim /PATH_TO_TRAC/mytrac/conf/trac.ini
# add to trac.ini:
# [components]
# tracrpc.* = enabled
# create htpasswd file
/usr/sbin/htpasswd -b /PATH_TO_TRAC/mytrac/.htpasswd <username> <pass> # use -c option for first time
# add admin user
trac-admin /PATH_TO_TRAC/mytrac permission add <username> TRAC_ADMIN
# test it
tracd -p 8020 -s --basic-auth="*,/PATH_TO_TRAC/mytrac/.htpasswd,realm" /PATH_TO_TRAC/mytrac
# navigate to http://127.0.0.1:8020
Using trac api to create a new ticket:
import xmlrpclib
API_URL = 'http://<username>:<pass>@127.0.0.1:8020/login/xmlrpc'
if __name__ == '__main__':
attributes = {
'status': 'new',
'priority': 'major',
'type': 'common'
}
subject = 'Some issue'
description = 'Some description ...'
server = xmlrpclib.ServerProxy(API_URL)
ticket_id = server.ticket.create(
subject,
description,
attributes
)
print 'Ticket #{ticket_id} was created'.format(ticket_id=ticket_id)
Result (navigate to http://127.0.0.1:8020/ticket/1):

Links:
Licensed under CC BY-SA 3.0