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