diff --git a/lib/App/Git/IssueManager/Assign.pm b/lib/App/Git/IssueManager/Assign.pm new file mode 100644 index 0000000..dd1252a --- /dev/null +++ b/lib/App/Git/IssueManager/Assign.pm @@ -0,0 +1,47 @@ +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 "'; + +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;