NAME

Youri::BTS::Bugzilla - Youri Bugzilla interface

SYNOPSIS

    use Youri::BTS::Bugzilla;

    my $bugzilla = Youri::BTS::Bugzilla->new();

    print $bugzilla->get_maintainer('foobar');

DESCRIPTION

This module implement a Bugzilla interface for managing packages.

The legacy Bugzilla database model is mapped this way:

  • a maintainer is a user

  • a package is a product

  • each package has two pseudo components "program" and "package", owned by the package maintainer

CLASS METHODS

Except stated otherwise, maintainers are specified by their login, and packages are specified by their name.

new(%args)

Creates a new Youri::Bugzilla object.

Parameters:

lib $lib

Bugzilla library directory (default: /usr/share/bugzilla/lib).

project $project

Bugzilla project.

INSTANCE METHODS

has_package($package)

Return true if bugzilla contains given package.

has_maintainer($maintainer)

Return true if bugzilla contains given maintainer.

get_maintainer($package)

Return maintainer of given package.

get_versions($package)

Return versions from given package.

get_components($package)

Return components from given package.

get_packages()

Return all packages from the database.

add_package($name, $summary, $version, $maintainer, $contact)

Adds a new package in the database, with given name, summary, version, maintainer and initial QA contact.

add_version($package, $version)

Adds a new version to given package.

add_maintainer($name, $login)

Adds a new maintainer in the database, with given name, login and password.

del_package($package)

Delete given package from database.

del_maintainer($maintainer)

Delete given maintainer from database.

browse_packages($callback)

Browse all packages from bugzilla, and execute given callback with name and maintainer as argument for each of them.

COPYRIGHT AND LICENSE

Copyright (C) 2002-2006, YOURI project

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.