App-TimeTracker-Command-Gitlab
view release on metacpan or search on metacpan
lib/App/TimeTracker/Command/Gitlab.pm view on Meta::CPAN
my $branch = $self->issue;
if ($name) {
$branch = $self->safe_branch_name($self->issue.' '.$name);
}
$branch=~s/_/-/g;
$self->branch( lc($branch) ) unless $self->branch;
}
# reopen
if ($self->config->{gitlab}{reopen} && $issue->{state} eq 'closed') {
$self->_call('PUT','projects/'.$self->project_id.'/issues/'.$self->issue.'?state_event=reopen');
say "reopend closed issue";
}
# set assignee
if ($self->config->{gitlab}{set_assignee}) {
my $assignee;
if ($issue->{assignees} && $issue->{assignees}[0] && $issue->{assignees}[0]{username}) {
$assignee = $issue->{assignees}[0]{username};
}
elsif ( $issue->{assignee} && $issue->{assignee}{username}) {
$assignee = $issue->{assignee}{username};
}
if (my $user = $self->_call('GET','user')) {
if ($assignee) {
if ($assignee ne $user->{username}) {
warning_message("Assignee already set to ".$assignee);
}
}
else {
$self->_call('PUT','projects/'.$self->project_id.'/issues/'.$self->issue.'?assignee_id='.$user->{id});
say "Assignee set to you";
}
}
else {
error_message("Cannot get user-id, thus cannot assign issue");
}
}
# un/set labels
if (my $on_start = $self->config->{gitlab}{labels_on_start}) {
lib/App/TimeTracker/Command/Gitlab.pm view on Meta::CPAN
if (my $add = $on_start->{add}) {
foreach my $new (@$add) {
$l{$new}=1;
}
}
if (my $remove = $on_start->{remove}) {
foreach my $remove (@$remove) {
delete $l{$remove};
}
}
$self->_call('PUT','projects/'.$self->project_id.'/issues/'.$self->issue.'?labels='.uri_escape(join(',',keys %l)));
say "Labels are now: ".join(', ',sort keys %l);
}
};
#after [ 'cmd_start', 'cmd_continue', 'cmd_append' ] => sub {
# my $self = shift;
# TODO: do we want to do something after stop?
#};
sub _get_user_id {
( run in 0.715 second using v1.01-cache-2.11-cpan-c6e0e5ac2a7 )