fede.carg / wiki

IssueTracker

From Federico Cargnelutti

Jump to: navigation, search

Contents

Overview

The IssueTracker extension is a simple and powerful bug tracking and issue tracking system developed to make this process easier for your team. It introduces the <issues /> tag to the MediaWiki markup, which can be used to produce an issue and bug tracking system.

Name        = Issue Tracker
Status      = beta
Type1       = Tag
Type2       = Special page
Hook1       = LanguageGetSpecialPageAliases
Hook2       = ParserAfterTidy
Author      = Federico Cargnelutti
Version     = 1.0
Update      = March 08, 2008
Mediawiki   = 1.9.0 or greater
SVN         = http://svn.fedecarg.com/repo/IssueTracker/trunk
Browse SVN  = http://svn.fedecarg.com/browser/IssueTracker/trunk

Features

Version 1.0

  • View, add, edit and archive issues.
  • Search issues.
  • Filter issues.
  • List issues (new, resolved, closed, archived and/or any other custom tag).
  • Access Control List (group of users can have a different access levels).
  • Anonymous issue management.
  • MVC architecture, easy to extended.

Version 1.1

  • Attachments.
  • Issue change history.
  • Changelog support.
  • Email notifications.
  • Users can monitor specific issues.

Screenshot

IssueTracker - Listing Page
IssueTracker - Listing Page

Usage

The IssueTracker extension provides a custom tag, <issues />, that allows the inclusion of an issue tracker in any wiki page. It's possible to customize almost every aspect of the extension, such as permissions, user groups, colours, titles, and templates. It supports searching and several types of filtering.

To embed an issue tracker into a page, use the <issues /> tag:

<issues />

If a project name is not provided, the extension will use the page namespace as the default project name. You can create multiple issue trackers by providing different project names, for example:

<issues project="My Project" />

To hide the filter and search forms you can set the search and filter options to false:

<issues project="My Project" search="false" filter="false" />

By default, users must be logged in to add, edit or achieve issues. If you want to allow anonymous issue management, set the authenticate option to false:

<issues project="My Project" authenticate="false" />

Attributes

Name Type Description Default Required
project String The project name. Page namespace Yes
authenticate Boolean Authenticate user. True No
search Boolean Display search form. True No
filter Boolean Display filter form. True No

Requirements

The IssueTracker extension requires MediaWiki 1.9.0 or greater.

Download

Subversion Repository

Use SVN to checkout a copy of the source code. I highly recommend you to get the trunk version of the extension until a stable version is released. I do what I can to ensure that SVN versions are build-able and run-able, but clearly beta versions in SVN should not be considered stable.

Check out the current development trunk with:

$ svn checkout http://svn.fedecarg.com/repo/IssueTracker/

Installation

1. Copy the IssueTracker/ directory into the extensions folder of your MediaWiki installation. Note: Make sure that the extensions/ directory and the IssueTracker/ directory are both readable and executable by everyone.

2. Add the following line to the LocalSettings.php file:

require_once $IP . '/extensions/IssueTracker/IssueTracker.php';

3. Create the database table, executing the following script on your MySQL administration tool:

CREATE TABLE `issue_tracker` (
  `issue_id` INT(10) NOT NULL AUTO_INCREMENT,
  `type` VARCHAR(5) NOT NULL DEFAULT 't_bug',
  `title` VARCHAR(100) NOT NULL,
  `summary` TEXT NOT NULL,
  `status` VARCHAR(5) NOT NULL DEFAULT 's_new',
  `assignee` VARCHAR(40) NOT NULL,
  `user_name` VARCHAR(40) NOT NULL,
  `user_id` INT(10) NOT NULL,
  `project_name` VARCHAR(100) NOT NULL,
  `deleted` INT(1) NOT NULL DEFAULT '0',
  `history` TEXT NOT NULL,
  `priority_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `date_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY  (`issue_id`),
  KEY `user_id` (`user_id`)
);

Customization

Customization options are available and can be set in the IssueTracker.config.php file.

Issue Types

$type['t_bug'] = array('name' => 'Bug', 'colour' => 'FFDFDF');
$type['t_fea'] = array('name' => 'New Feature', 'colour' => 'E1FFDF');
$type['t_imp'] = array('name' => 'Improvement', 'colour' => 'FFFFCF');
$type['t_doc'] = array('name' => 'Doc', 'colour' => 'F9F9F9');
$type['t_fee'] = array('name' => 'Feedback', 'colour' => 'E5D4E7');
$type['t_tes'] = array('name' => 'Test', 'colour' => 'DFE2FF');

You can add as many issue types as you want, for example:

...
$type['t_pat'] = array('name' => 'Patch', 'colour' => 'EEEEEE');

Issue Status

$status['s_new'] = array('name' => 'New', 'colour' => 'F9F9F9');
$status['s_asi'] = array('name' => 'Assigned', 'colour' => 'F9F9F9');
$status['s_res'] = array('name' => 'Resolved', 'colour' => 'B8EFB3');
$status['s_clo'] = array('name' => 'Closed', 'colour' => 'F9F9F9');

Permissions

$perms['list']     = array('group' => '*');
$perms['view']     = array('group' => '*');
$perms['add']      = array('group' => '*');
$perms['edit']     = array('group' => '*');
$perms['archive']  = array('group' => '*');
$perms['delete']   = array('group' => '*');
$perms['assign']   = array('group' => 'sysop');
$perms['assignee'] = array('group' => 'devel');

By default:

  • list: Any group can access the listing page.
  • view: Any group can view issues.
  • add: Any group can add issues.
  • edit: Any group can edit issues.
  • archive: Any group can archive issues.
  • delete: Any group can delete issues.
  • assign: Only the "Sysop" group can assign issues.
  • assignee: Issues can only be assigned to users in the "Devel" group.

Change Log

Version Release Date Description
1.0b 08 Mar, 2008 Version 1.0 beta released
1.0b 11 Mar, 2008 Added new hook: ParserAfterTidy

License

GNU General Public Licence 2.0 or later. Copyright © 2008, Federico Cargnelutti.

Contact
Personal tools