61 lines
2.1 KiB
Perl
61 lines
2.1 KiB
Perl
package App::Git::IssueManager::Get;
|
|
#ABSTRACT: class implementing the get issue command of the GIT IssueManager
|
|
use strict;
|
|
use warnings;
|
|
use MooseX::App::Command;
|
|
extends qw(App::Git::IssueManager);
|
|
use Git::LowLevel;
|
|
use Git::IssueManager;
|
|
use Git::IssueManager::Issue;
|
|
|
|
use Term::ANSIColor;
|
|
use Try::Tiny;
|
|
|
|
|
|
command_short_description 'get an issue of a repository identified by the given id';
|
|
command_usage 'git issue get -i TST-a34df432';
|
|
|
|
option 'id' => (
|
|
is => 'ro',
|
|
isa => 'Str',
|
|
required => 1,
|
|
documentation => q[the id of the issue],
|
|
cmd_aliases => [qw(i)]
|
|
);
|
|
|
|
sub run
|
|
{
|
|
my $self = shift;
|
|
my $manager = Git::IssueManager->new(repository=>Git::LowLevel->new(git_dir=> "."));
|
|
if (!$manager->ready)
|
|
{
|
|
print("IssueManager not initialized yet. Please call \"init\" command to do so.");
|
|
exit(-1);
|
|
}
|
|
|
|
my $issue=$manager->get($self->id);
|
|
|
|
printf("%20s: %30s\n", "ID", $issue->id);
|
|
printf("%20s: %30s\n", "Subject", $issue->subject);
|
|
printf("%20s: %30s\n", "Type", $issue->type);
|
|
printf("%20s: %30s\n", "Priority", $issue->priority);
|
|
printf("%20s: %30s\n", "Severity", $issue->severity);
|
|
printf("%20s: %30s\n", "Creation Date", $issue->creation_date()->ymd()." ".$issue->creation_date->hms());
|
|
printf("%20s: %30s\n", "Author", $issue->author);
|
|
printf("%20s: %30s\n", "Author Email", $issue->author_email);
|
|
printf("%20s: %30s\n", "Status", $issue->status);
|
|
if ($issue->status eq "closed")
|
|
{
|
|
printf("%20s: %30s\n", "Closed Date", $issue->closed_date()->ymd()." ".$issue->closed_date->hms());
|
|
}
|
|
printf("%20s: %30s\n", "Substatus", $issue->substatus);
|
|
printf("%20s: %30s\n", "Comment", $issue->comment);
|
|
printf("%20s: %30s\n", "Tags", join(",", @{$issue->tags}));
|
|
printf("%20s: %30s\n", "Assignee", $issue->worker);
|
|
printf("%20s: %30s\n", "Assignee Email", $issue->worker_email);
|
|
printf("%20s: %30s\n", "Last Change Date", $issue->last_change_date()->ymd()." ".$issue->last_change_date->hms());
|
|
printf("%20s: \n %s\n", "Description",$issue->description);
|
|
}
|
|
|
|
1;
|