ubuntu-bots/Bugtracker
Terence Simpson ea937919fc Update a couple README.txt files 2008-07-20 17:06:04 +01:00
..
README.txt Update a couple README.txt files 2008-07-20 17:06:04 +01:00
__init__.py Fix up bugtracker 2007-09-17 21:00:51 +02:00
config.py Fix up bugtracker 2007-09-17 21:00:51 +02:00
plugin.py Big-Old-Update Edition 2008-07-20 16:59:27 +01:00
test.py Initial checkin 2006-06-26 19:57:20 +02:00

Copyright (c) 2005-2007, Dennis Kaarsemaker

This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as
published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

The syntax to add a tracker is weird, here are some examples:
@bugtracker add freedesktop bugzilla https://bugs.freedesktop.org Freedesktop
@bugtracker add malone malone https://launchpad.net/malone Malone
@bugtracker add debian debbugs http://bugs.debian.org Debian
@bugtracker add openoffice issuezilla http://www.openoffice.org/issues OpenOffice
@bugtracker add django trac http://code.djangoproject.com/ticket Django
@bugtracker add gaim sourceforge http://sourceforge.net/tracker/?group_id=235&atid=100235 Gaim

In general: @bugtracker add <name> <type> <baseurl> [description]
Bugtracker dialects (types) this plugin understands:
* Bugzilla
* Issuezilla (OpenOffice.org's tjernobyl transformation of bugzilla)
* Malone
* Debbugs (debbugs sucks donkeyballs - please fix debbugs)
* Trac (with not-too-buggered-up templates, it needs to do screenscraping)
* Sourceforge (needs atid and group_id in the url!)
* WikiForms (see bugs.gnewsense.org for an example)
* str.php from the CUPS project
* Mantis (http://www.mantisbt.org)

To request a bug report, use this syntax:

bug 123
bug #123
supybot bug 123
bug 123, 4, 5
bug 1, 3 and 89

To rename a bugtracker:
@bugtracker rename old-name new-name

To change details of a bugtracker, just add it again and it will overwrite the
existing tracker.

The bug snarfing (responding to bug numbers/urls) will only work in channels
where supybot.plugins.bugtracker.bugsnarfer is True.

Automatic reporting of new bugs is also possible for Malone (the launchpad
bugtracker). Enabling this is not a trivial process. First step is to set the
supybot.plugins.bugtracker.reportercache variable to a dir for this purpose. You
also need a mail account that supports the + hack (mail for foo+bar@baz.com is
automatically delivered to foo@baz.com while the Delivered-To: header is set to
foo+bar@baz.com) which is accessible via IMAP. I know this is a rather strong
requirement, but that's the way it works now. Patches to make it work in other
situations are appreciated.

Anyway, once that is all set up you're almost there. Let's assume the
mailaddress is bugreporter@yourdomain.com. Now pick a tag for your bugreports,
e.g. ubuntu (you can set a different tag per channel) and create a launchpad
account with address bugreporter+ubuntu@yourdomain.com. Activate that account
and make sure it gets bugmail for the product(s) you want to monitor.

Now set the supybot.plugins.bugtracker.bugreporter in the channels where bugs
are to be reported to the value of the tag for bugs to be reported there and
watch bugs flowing in.

To prevent old bugs from showing up when they change or a comment is being
added, you can manually fill the cache. Just touch files in the reporters cache
with the following name:

tag_here/malone/NN/MMMM where NN is int(bugid/1000) and MMMM is the bugid.

If your products already have many bugreports, consider doing some
screenscraping with the malone searchpages and sed/awk :)

A quick hack I use to get all launchpad bugids preseeded:

cd /home/ubugtu/data/bugmail # This is my cachedir
cd launchpad                 # This is the tag
mkdir malone
product=launchpad
amount=2000                  # 2000 is the amount of bugs, chck this on
                             # launchpad under all bugs ever reported
# Download a summary of all bugs
for x in `seq 0 75 $amount`; do
    wget "https://bugs.launchpad.net/$product/+bugs?search=Search&field.status=Unconfirmed&field.status=Confirmed&field.status=In+Progress&field.status=Needs+Info&field.status=Fix+Committed&field.status=Fix+Released&field.status=Rejected&field.omit_dupes.used=&start=$x" -O $x;
done
 grep -h =.amount * | sed -e 's/.*>\(.*\)<.*/\1/' | awk '{print "malone/" int($1/1000)}' | sort -u | xargs mkdir -p
 grep -h =.amount * | sed -e 's/.*>\(.*\)<.*/\1/' | awk '{print "malone/" int($1/1000) "/" $1}' | xargs -n100 touch