App-Git-IssueManager

 view release on metacpan or  search on metacpan

lib/App/Git/IssueManager/Add.pm  view on Meta::CPAN

package App::Git::IssueManager::Add;
#ABSTRACT: class implementing the add 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 App::Git::IssueManager::Config;
use File::Temp qw/ tempfile/;
use File::Slurp;
use Term::ANSIColor;
use Try::Tiny;


command_short_description 'create an issue within a project';
command_usage 'git issue add -s Humbug';

option 'subject' => (
          is                => 'ro',
          isa               => 'Str',
          required          => 1,
          documentation     => q[the subject/title of the issue],
          cmd_aliases       => [qw(s)]
);

option 'priority' => (
          is                => 'ro',
          isa               => 'Str',
          required          => 0,
          documentation     => q[the priority of the issue (low, medium, high, urgent)],
          cmd_aliases       => [qw(p)],
          default           => "low"
);

option 'severity' => (
          is                => 'ro',
          isa               => 'Str',
          required          => 0,
          documentation     => q[the severity of the issue (low, medium, high, critical)],
          cmd_aliases       => [qw(e)],
          default           => "low"
);

option 'type' => (
          is                => 'ro',
          isa               => 'Str',
          required          => 0,
          documentation     => q[the type of the issue (bug, security-bug, improvement, feature, task)],
          cmd_aliases       => [qw(t)],
          default           => "bug"
);

option 'description' => (
          is                => 'ro',
          isa               => 'Str',
          required          => 0,
          documentation     => q[the description of the issue, only plain text or markdown. If not given an editor is started.],
          cmd_aliases       => [qw(d)],
          default           => ""
);


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);
  }



( run in 0.441 second using v1.01-cache-2.11-cpan-39bf76dae61 )