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: , , , Wireless Internet Security Coding Network Monitoring

Comment

Enter your comment (wiki syntax is allowed):
YDHCM

Wireless Internet Security Performance RADIUS server Wireless Internet Security Performance RADIUS server