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;