SYNOPSIS
use
Net::Bamboo;
# basics
my
$bamboo
= new Net::Bamboo;
$bamboo
->hostname(
'bamboo.domain.com'
);
# hostname of bamboo server
$bamboo
->username(
'myuser'
);
# bamboo username
$bamboo
->password(
'mypass'
);
# bamboo password
$bamboo
->debug(
$bool
);
# debug mode (dump HTTP/XML)
# projects
$bamboo
->projects;
# array of Net::Bamboo::Project
$bamboo
->num_projects;
# number of projects
$bamboo
->project_keys;
# list of project keys
$bamboo
->project(
$key
);
# get project by bamboo key
my
$project
=
$bamboo
->project(
$key
);
$project
->key;
# project key
$project
->name;
# project name
# plans
$project
->plans;
# list of Net::Bamboo::Plan objects
$project
->num_plans;
# number of plans
$project
->plan_keys;
# list of plan keys
$project
->plan(
$key
);
# get plan by bamboo key
my
$plan
=
$bamboo
->plan(
$key
);
$plan
->key;
# plan key
$plan
->name;
# plan name
$plan
->num_stages;
# number of stages in plan
$plan
->is_enabled;
# flag: is plan enabled
$plan
->is_building;
# flag: is plan currently building
$plan
->is_active;
# flag: is plan active
$plan
->fqkey;
# fully qualified key (project key + plan key)
# builds
$plan
->builds;
# list of Net::Bamboo::Build objects (five most recent)
$plan
->build_numbers;
# list of build numbers
$plan
->build(
$num
);
# get build by number
$plan
->latest_build;
# get most recent build
my
$build
=
$plan
->build(
$num
);
$build
->number;
# build number
$build
->reason;
# build reason
$build
->date_started;
# build start date/time (DateTime object)
$build
->date_completed;
# build end date/time (DateTime object)
$build
->duration;
# build duration (DateTime::Duration object)
$build
->succeeded;
# flag: build success?
$build
->failed;
# flag: build failure?
$build
->num_tests_ok;
# number of successful unit tests
$build
->num_tests_fail;
# number of failed unit tests
DESCRIPTION
Net::Bamboo is a simple OO interface to the RESTy interface exposed by Atlassian's Bamboo tool for continuous integration. The implementation is functionally lazy for the most part. Projects and plans are pulled in a single bulk request while the builds are pulled per plan as they are needed. Builds cycle often, so there exists a Plan->refresh method you may use to clear the attribute storing the builds; this will cause Net::Bamboo::Plan to pull a new build the next time it's requested. A similar method is available for the Net::Bamboo object as well, though it's likely to be used much less often.
This is a rough first cut. Pull requests against my github repository are more than welcome.
AUTHOR
Mike Eldridge <diz@cpan.org>