Roundup e-mail interface: howto add/update issues by e-mail
The Roundup issue tracker allows users to create/update issues using its e-mail interface (See Howto install Roundup). E-mails that contain Roundup commands are parsed by the roundup e-mail gateway and actions are taken on the issues database. This article is a step by step howto for setting the roundup e-mail gateway in linux/unix systems.
Configuring the Roundup e-mail interface
To use the e-mail interface, the host running the Roundup tracker must be able accept e-mails from the Internet . The procedure followed here relies on e-mail aliases to pass e-mails to the roundup mail gateway script.
Update the alias file
Add a line to the alias file (/etc/aliases)
project: "|/usr/local/bin/python /usr/local/bin/roundup-mailgw /usr/local/www/trackers/project"
Allow write access to the lock file
Make the file /usr/local/www/trackers/project/db/lock writable to everyone or add the user nobody to the group that owns the lock file. In the latter case, the group must have write permission on the lock file.
Test the e-mail gateway
echo test |mail -s '[issue] test' project@example.com
Using the Roundup e-mail interface
Adding a new issue
Subject of the e-mail must the title the issue. The body contains the description of the issue.
Changing the title of an existing issue
Subject of the e-mail must contain the issue number between brackets. The remaining of the subject line is the new title the issue. Example
[issue325] Add a new feature X to module Y
If the body contains text, the text will be added as a message to the issue.
Setting priorities
To set/change priority when creating or modifying an issue, add
[priority=xxx]
To the subject line, where xxx is the priority (critical,urgent,bug,feature,wish).
Vim function to manage issues from vim
Add the following in your ~/.vimrc, then perform visual selection of text to report as an issue and press F3.
map <F3> :call SendIssue()<CR>
function! SendIssue() range
let prj=input("Project: ")
let number=input("Issue number: ")
let title=input("Issue title: ")
let priority=input("Priority: ","bug")
let subject="Subject:[issue".number."] ".title." [priority=".priority."]"
exec "'<,'>w! .msg"
exec "!echo -e \"".subject. " \" > .body ; cat .msg >> .body; cat .body | /usr/bin/msmtp --host=example.com -f from@example.com ". prj."@tracker-server.com"
endfunction | Labels: unix, services, howto, project-management |
|

Comment