Bot-BasicBot-Pluggable-Module-JIRA
view release on metacpan or search on metacpan
lib/Bot/BasicBot/Pluggable/Module/JIRA.pm view on Meta::CPAN
=over 2
=item * issue (shortcut for key)
=item * version (shortcut for the first fixVersion listed)
=item * status_name (the issue's current status)
=item * status_verb (the issue's current status in the past tense)
=back
If you've enabled the DBI options above, these are also available to
you:
=over 2
=item * status_last_changed_user (user that most recently changed the issue status)
=item * status_last_changed_datetime (DateTime object for the most recent status change)
=back
More details on the RemoteIssue object may be found in the JIRA docs:
http://docs.atlassian.com/rpc-jira-plugin/4.1-1/com/atlassian/jira/rpc/soap/beans/RemoteIssue.html
Most all accessors methods on the RemoteIssue object are available in
the stash as keys of the hashref. For example, getAssignee may be
accessed in xslate like:
<: $assignee :>
The getComponents method, which returns a list of components, may be
accessed using similar perl/xslate idioms:
<: $components.0 :>
The default inquiry format is:
<: colorize($issue) :> [<: $version :>] <: bold($summary) :> for <: $assignee :>
which produces replies such as:
<purl> PRJ-284 [Unscheduled] add jira to bot for diz
The default status format is:
<: $issue :> [<: $version :>] was <: $status_verb :> by <: $status_last_changed_user :> on <: $status_last_changed_datetime.strftime("%Y %b %d (%a) at %l:%M %P") :>
which produces replies such as:
<purl> PRJ-284 [Unscheduled] was closed by diz on 2010 Sep 13 (Mon) at 1:26 pm
=cut
use Moose;
use MooseX::Traits;
use POE;
use Try::Tiny;
use DateTime;
use DateTime::Format::MySQL;
use Lingua::StopWords::EN;
use JIRA::Client;
use Text::Xslate;
#use Data::Dump qw(dd pp);
#$Data::Dump::INDENT = '';
extends 'Bot::BasicBot::Pluggable::Module';
has log =>
is => 'ro',
isa => 'Log::Log4perl::Logger',
lazy => 1,
default => sub { Log::Log4perl->get_logger(__PACKAGE__) };
has xslate =>
is => 'ro',
isa => 'Text::Xslate',
lazy_build => 1;
has client =>
is => 'ro',
lazy_build => 1;
has dbh =>
is => 'rw',
isa => 'Maybe[DBI::db]';
has sths =>
is => 'rw',
isa => 'HashRef[DBI::st]';
has projects =>
is => 'ro',
isa => 'ArrayRef[RemoteProject]',
lazy_build => 1;
has project_keys =>
is => 'ro',
isa => 'ArrayRef[Str]',
lazy_build => 1;
has context =>
is => 'rw',
isa => 'RemoteIssue';
has statuses =>
is => 'ro',
isa => 'HashRef',
lazy_build => 1,
traits => [ 'Hash' ],
handles => { get_status_name => 'get', get_statuses => 'values' };
has status_verbs =>
is => 'ro',
isa => 'HashRef',
( run in 1.371 second using v1.01-cache-2.11-cpan-5837b0d9d2c )