48 lines
1.3 KiB
Perl
48 lines
1.3 KiB
Perl
|
package App::Git::IssueManager::Assign;
|
||
|
#ABSTRACT: class implementing the assign 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 'assign an issue from a repository identified by the given id to a user';
|
||
|
command_usage 'git issue assign -i TST-a34df432 -w "Dominik Meyer <dmeyer@federationhq.de>"';
|
||
|
|
||
|
option 'id' => (
|
||
|
is => 'ro',
|
||
|
isa => 'Str',
|
||
|
required => 1,
|
||
|
documentation => q[the id of the issue],
|
||
|
cmd_aliases => [qw(i)]
|
||
|
);
|
||
|
|
||
|
option 'worker' => (
|
||
|
is => 'ro',
|
||
|
isa => 'Str',
|
||
|
required => 1,
|
||
|
documentation => q[the user to assign the issue to],
|
||
|
cmd_aliases => [qw(w)]
|
||
|
);
|
||
|
|
||
|
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);
|
||
|
}
|
||
|
|
||
|
$self->worker() =~ /^(.*)<(.*)>$/;
|
||
|
my $issue=$manager->assign($self->id, $1, $2);
|
||
|
}
|
||
|
1;
|