Bugzilla(3) User Contributed Perl Documentation Bugzilla(3)NAMEWWW::Bugzilla - Handles submission/update of bugzilla bugs via
WWW::Mechanize.
SYNOPSIS
use WWW::Bugzilla;
# create new bug
my $bz = WWW::Bugzilla->new( server => 'www.mybugzilla.com',
email => 'buguser@bug.com',
password => 'mypassword' );
# enter info into some fields and save new bug
# get list of available version choices
my @versions = $bz->available('version');
# set version
$bz->version( $versions[0] );
# get list of available products
my @products = $bz->available('product');
# set product
$bz->product( $products[0] );
# get list of components available
my @components = $bz->available('component');
# set component
$bz->component( $components[0] );
# optionally do the same for platform, os, priority, severity.
$bz->assigned_to( 'joeschmoe@whatever.com' );
$bz->summary( $some_text );
$bz->description( $some_more_text );
# submit bug, returning new bug number
my $bug_number = $bz->commit;
# all of the above could have been done in a much easier
# way, had we known what values to use. See below:
my $bz = WWW::Bugzilla->new( server => 'www.mybugzilla.com',
email => 'buguser@bug.com',
password => 'mypassword'
version => 'Alpha',
product => 'MyProduct',
component => 'API',
assigned_to => 'joeschmoe@whatever.com',
summary => $some_text,
description => $some_more_text);
my $bug_number = $bz->commit;
# Below is an example of how one would update a bug.
my $bz = WWW::Bugzilla->new( server => 'www.mybugzilla.com',
email => 'buguser@bug.com',
password => 'mypassword'
bug_number => 46 );
# show me the chosen component
my $component = $bz->component;
# change component
$bz->component( 'Test Failures' );
$bz->add_cc( 'me@me.org' );
$bz->add_attachment( filepath => '/home/me/file.txt',
description => 'description text',
is_patch => 0,
comment => 'comment text here' );
$bz->additional_comments( "comments here");
# below are examples of changing bug status
$bz->change_status("assigned");
$bz->change_status("fixed");
$bz->change_status("later");
$bz->mark_as_duplicate("12");
$bz->reassign("someone@else.com");
$bz->commit;
DESCRIPTIONWWW::Bugzilla currently provides an API to posting new Bugzilla bugs,
as well as updating existing Bugzilla bugs.
INTERFACE
METHODS
new()
Initialize WWW::Bugzilla object. If bug_number is passed in, will
initialize as existing bug. Will croak() unless the Bugzilla login
page on server specified returns a 200 or 404. new() supports the
following name-value parameters.
server (required)
URL of the bugzilla server you wish to interface with. Do not
place http:// or https:// in front of the url (see 'use_ssl'
option below)
email (required)
Your email address used by bugzilla, in other words your
bugzilla login.
password (required)
Bugzilla password.
use_ssl (optional)
If set, will use https:// protocol, defaults to http://.
NOTE: This option requires Crypt::SSLeay.
product
Bugzilla product name, required if entering new bug (not
updating).
bug_number (optional)
If you mean to update an existing bug (not create a new one)
include a valid bug number here.
version component status assigned_to resolution dup_id assigned_to
summary bug_number description os platform severity priority cc url
add_cc target_milestone status_whiteboard keywords depends_on
blocks additional_comments
These are fields that can be initialized on new(), useful for
new bugs. Please note that some of these fields apply only to
bugs being updated, and if you set them here, they will be
overridden if the value is already set in the actual bug on the
server. These fields also have thier own get/set methods (see
below).
product()version()component()status()assigned_to()resolution()dup_id()assigned_to()summary()bug_number()description()os()platform()severity()priority()cc()url()add_cc()target_milestone()status_whiteboard()keywords()depends_on()blocks()additional_comments()
get/set the value of these bug fields. Some apply only to new
bugs, some only to bugs being updated. commit() must be called to
save these permanently.
available()
Returns list of available options for field requested. Below are
known valid fields:
product platform os version priority severity component
target_milestone
product()
Set the Product for the bug
reassign()
Mark bug being updated as reassigned to another user. Takes email
address as parameter. Status/resolution will not be updated until
commit() is called.
mark_as_duplicate()
Mark bug being updated as duplicate of another bug number. Takes
bug number as argument. Status/resolution will not be updated
until commit() is called.
change_status()
Change status of bug being updated. Status/resolution will not be
updated until commit() is called. The following are valid options
(case-insensitive):
assigned fixed invalid wontfix later remind worksforme reopen
verified closed
add_attachment()
Adds attachment to existing bug - will not work for new bugs.
Below are available params:
· filepath (required)
· description (required)
· is_patch (optional boolean)
· content_type - Autodetected if not defined.
· comment (optional)
· finished - will not return object to update form if set
(optional boolean)
list_attachments()
Lists attachments that are attached to an existing bug - will not
work for new bugs.
get_attachment()
Get the specified attachment from an existing bug - will not work
for new bugs.
commit()
Submits bugzilla new or update form. Returns bug_number. Optionally
takes parameter finished- if set will you are done updating the
bug, and wil not return you to the update page.
check_error ()
Checks if an error was given, croaking if it did.
get_products ()
Gets a list of products
get_comments()
Lists comments made on an existing bug - will not work for new
bugs.
BUGS, IMPROVEMENTS
There may well be bugs in this module. Using it as I have, I just have
not run into any. In addition, this module does not support ALL of
Bugzilla's features. I will consider any patches or improvements, just
send me an email at the address listed below.
AUTHOR
Maintained by:
Brian Caswell, bmc@shmoo.com
Originally written by: Matthew C. Vella, the_mcv@yahoo.com
LICENSEWWW::Bugzilla - Module providing API to create or update Bugzilla bugs.
Copyright (C) 2003 Matthew C. Vella (the_mcv@yahoo.com)
Portions Copyright (C) 2006 Brian Caswell (bmc@shmoo.com)
This module is free software; you can redistribute it and/or modify it
under the terms of either:
a) the GNU General Public License as published by the Free Software
Foundation; either version 1, or (at your option) any later version,
or
b) the "Artistic License" which comes with this module.
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 either
the GNU General Public License or the Artistic License for more details.
You should have received a copy of the Artistic License with this
module, in the file ARTISTIC. If not, I'll be glad to provide one.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA
perl v5.14.1 2007-04-18 Bugzilla(3)