GitLab-API-v4

 view release on metacpan or  search on metacpan

lib/GitLab/API/v4.pm  view on Meta::CPAN

    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;
    return $self->_call_rest_client( 'GET', 'groups/:group_id/members/all', [@_], $options );
}

=item group_member

    my $member = $api->group_member(
        $project_id,
        $user_id,
    );

Sends a C<GET> request to C<groups/:project_id/members/:user_id> and returns the decoded response content.

=cut

sub group_member {
    my $self = shift;
    croak 'group_member must be called with 2 arguments' if @_ != 2;
    croak 'The #1 argument ($project_id) to group_member must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($user_id) to group_member must be a scalar' if ref($_[1]) or (!defined $_[1]);
    my $options = {};
    return $self->_call_rest_client( 'GET', 'groups/:project_id/members/:user_id', [@_], $options );
}

=item add_group_member

    my $member = $api->add_group_member(
        $group_id,
        \%params,
    );

Sends a C<POST> request to C<groups/:group_id/members> and returns the decoded response content.

=cut

sub add_group_member {
    my $self = shift;
    croak 'add_group_member must be called with 1 to 2 arguments' if @_ < 1 or @_ > 2;
    croak 'The #1 argument ($group_id) to add_group_member must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The last argument (\%params) to add_group_member must be a hash ref' if defined($_[1]) and ref($_[1]) ne 'HASH';
    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'POST', 'groups/:group_id/members', [@_], $options );
}

=item update_group_member

    my $member = $api->update_group_member(
        $group_id,
        $user_id,
        \%params,
    );

Sends a C<PUT> request to C<groups/:group_id/members/:user_id> and returns the decoded response content.

=cut

sub update_group_member {
    my $self = shift;
    croak 'update_group_member must be called with 2 to 3 arguments' if @_ < 2 or @_ > 3;
    croak 'The #1 argument ($group_id) to update_group_member must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($user_id) to update_group_member must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The last argument (\%params) to update_group_member must be a hash ref' if defined($_[2]) and ref($_[2]) ne 'HASH';
    my $params = (@_ == 3) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'PUT', 'groups/:group_id/members/:user_id', [@_], $options );
}

=item remove_group_member

    $api->remove_group_member(
        $group_id,
        $user_id,
    );

Sends a C<DELETE> request to C<groups/:group_id/members/:user_id>.

=cut

sub remove_group_member {
    my $self = shift;
    croak 'remove_group_member must be called with 2 arguments' if @_ != 2;
    croak 'The #1 argument ($group_id) to remove_group_member must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($user_id) to remove_group_member must be a scalar' if ref($_[1]) or (!defined $_[1]);
    my $options = {};
    $options->{decode} = 0;
    $self->_call_rest_client( 'DELETE', 'groups/:group_id/members/:user_id', [@_], $options );
    return;
}

=back

=head2 Issues

See L<https://docs.gitlab.com/ce/api/issues.html>.

=over

=item global_issues

    my $issues = $api->global_issues(
        \%params,
    );

Sends a C<GET> request to C<issues> and returns the decoded response content.

=cut

sub global_issues {
    my $self = shift;
    croak 'global_issues must be called with 0 to 1 arguments' if @_ < 0 or @_ > 1;
    croak 'The last argument (\%params) to global_issues must be a hash ref' if defined($_[0]) and ref($_[0]) ne 'HASH';
    my $params = (@_ == 1) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;
    return $self->_call_rest_client( 'GET', 'issues', [@_], $options );
}

lib/GitLab/API/v4.pm  view on Meta::CPAN

    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;
    return $self->_call_rest_client( 'GET', 'projects/:project_id/members/all', [@_], $options );
}

=item project_member

    my $member = $api->project_member(
        $project_id,
        $user_id,
    );

Sends a C<GET> request to C<projects/:project_id/members/:user_id> and returns the decoded response content.

=cut

sub project_member {
    my $self = shift;
    croak 'project_member must be called with 2 arguments' if @_ != 2;
    croak 'The #1 argument ($project_id) to project_member must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($user_id) to project_member must be a scalar' if ref($_[1]) or (!defined $_[1]);
    my $options = {};
    return $self->_call_rest_client( 'GET', 'projects/:project_id/members/:user_id', [@_], $options );
}

=item add_project_member

    my $member = $api->add_project_member(
        $project_id,
        \%params,
    );

Sends a C<POST> request to C<projects/:project_id/members> and returns the decoded response content.

=cut

sub add_project_member {
    my $self = shift;
    croak 'add_project_member must be called with 1 to 2 arguments' if @_ < 1 or @_ > 2;
    croak 'The #1 argument ($project_id) to add_project_member must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The last argument (\%params) to add_project_member must be a hash ref' if defined($_[1]) and ref($_[1]) ne 'HASH';
    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'POST', 'projects/:project_id/members', [@_], $options );
}

=item update_project_member

    my $member = $api->update_project_member(
        $project_id,
        $user_id,
        \%params,
    );

Sends a C<PUT> request to C<projects/:project_id/members/:user_id> and returns the decoded response content.

=cut

sub update_project_member {
    my $self = shift;
    croak 'update_project_member must be called with 2 to 3 arguments' if @_ < 2 or @_ > 3;
    croak 'The #1 argument ($project_id) to update_project_member must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($user_id) to update_project_member must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The last argument (\%params) to update_project_member must be a hash ref' if defined($_[2]) and ref($_[2]) ne 'HASH';
    my $params = (@_ == 3) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'PUT', 'projects/:project_id/members/:user_id', [@_], $options );
}

=item remove_project_member

    $api->remove_project_member(
        $project_id,
        $user_id,
    );

Sends a C<DELETE> request to C<projects/:project_id/members/:user_id>.

=cut

sub remove_project_member {
    my $self = shift;
    croak 'remove_project_member must be called with 2 arguments' if @_ != 2;
    croak 'The #1 argument ($project_id) to remove_project_member must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($user_id) to remove_project_member must be a scalar' if ref($_[1]) or (!defined $_[1]);
    my $options = {};
    $options->{decode} = 0;
    $self->_call_rest_client( 'DELETE', 'projects/:project_id/members/:user_id', [@_], $options );
    return;
}

=back

=head2 Project snippets

See L<https://docs.gitlab.com/ce/api/project_snippets.html>.

=over

=item project_snippets

    my $snippets = $api->project_snippets(
        $project_id,
        \%params,
    );

Sends a C<GET> request to C<projects/:project_id/snippets> and returns the decoded response content.

=cut

sub project_snippets {
    my $self = shift;
    croak 'project_snippets must be called with 1 to 2 arguments' if @_ < 1 or @_ > 2;
    croak 'The #1 argument ($project_id) to project_snippets must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The last argument (\%params) to project_snippets must be a hash ref' if defined($_[1]) and ref($_[1]) ne 'HASH';
    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;

lib/GitLab/API/v4.pm  view on Meta::CPAN

    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;
    return $self->_call_rest_client( 'GET', 'projects/:project_id/releases', [@_], $options );
}

=item release

    my $release = $api->release(
        $project_id,
        $tag_name,
    );

Sends a C<GET> request to C<projects/:project_id/releases/:tag_name> and returns the decoded response content.

=cut

sub release {
    my $self = shift;
    croak 'release must be called with 2 arguments' if @_ != 2;
    croak 'The #1 argument ($project_id) to release must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to release must be a scalar' if ref($_[1]) or (!defined $_[1]);
    my $options = {};
    return $self->_call_rest_client( 'GET', 'projects/:project_id/releases/:tag_name', [@_], $options );
}

=item create_release

    my $release = $api->create_release(
        $project_id,
        \%params,
    );

Sends a C<POST> request to C<projects/:project_id/releases> and returns the decoded response content.

=cut

sub create_release {
    my $self = shift;
    croak 'create_release must be called with 1 to 2 arguments' if @_ < 1 or @_ > 2;
    croak 'The #1 argument ($project_id) to create_release must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The last argument (\%params) to create_release must be a hash ref' if defined($_[1]) and ref($_[1]) ne 'HASH';
    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'POST', 'projects/:project_id/releases', [@_], $options );
}

=item update_release

    my $release = $api->update_release(
        $project_id,
        $tag_name,
        \%params,
    );

Sends a C<PUT> request to C<projects/:project_id/releases/:tag_name> and returns the decoded response content.

=cut

sub update_release {
    my $self = shift;
    croak 'update_release must be called with 2 to 3 arguments' if @_ < 2 or @_ > 3;
    croak 'The #1 argument ($project_id) to update_release must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to update_release must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The last argument (\%params) to update_release must be a hash ref' if defined($_[2]) and ref($_[2]) ne 'HASH';
    my $params = (@_ == 3) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'PUT', 'projects/:project_id/releases/:tag_name', [@_], $options );
}

=item delete_release

    my $release = $api->delete_release(
        $project_id,
        $tag_name,
    );

Sends a C<DELETE> request to C<projects/:project_id/releases/:tag_name> and returns the decoded response content.

=cut

sub delete_release {
    my $self = shift;
    croak 'delete_release must be called with 2 arguments' if @_ != 2;
    croak 'The #1 argument ($project_id) to delete_release must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to delete_release must be a scalar' if ref($_[1]) or (!defined $_[1]);
    my $options = {};
    return $self->_call_rest_client( 'DELETE', 'projects/:project_id/releases/:tag_name', [@_], $options );
}

=back

=head2 Release Links

See L<https://docs.gitlab.com/ce/api/releases/links.html>.

=over

=item release_links

    my $links = $api->release_links(
        $project_id,
        $tag_name,
        \%params,
    );

Sends a C<GET> request to C<projects/:project_id/releases/:tag_name/assets/links> and returns the decoded response content.

=cut

sub release_links {
    my $self = shift;
    croak 'release_links must be called with 2 to 3 arguments' if @_ < 2 or @_ > 3;
    croak 'The #1 argument ($project_id) to release_links must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to release_links must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The last argument (\%params) to release_links must be a hash ref' if defined($_[2]) and ref($_[2]) ne 'HASH';
    my $params = (@_ == 3) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;

lib/GitLab/API/v4.pm  view on Meta::CPAN


=item release_link

    my $link = $api->release_link(
        $project_id,
        $tag_name,
        $link_id,
    );

Sends a C<GET> request to C<projects/:project_id/releases/:tag_name/assets/links/:link_id> and returns the decoded response content.

=cut

sub release_link {
    my $self = shift;
    croak 'release_link must be called with 3 arguments' if @_ != 3;
    croak 'The #1 argument ($project_id) to release_link must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to release_link must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The #3 argument ($link_id) to release_link must be a scalar' if ref($_[2]) or (!defined $_[2]);
    my $options = {};
    return $self->_call_rest_client( 'GET', 'projects/:project_id/releases/:tag_name/assets/links/:link_id', [@_], $options );
}

=item create_release_link

    my $link = $api->create_release_link(
        $project_id,
        $tag_name,
        \%params,
    );

Sends a C<POST> request to C<projects/:project_id/releases/:tag_name/assets/links> and returns the decoded response content.

=cut

sub create_release_link {
    my $self = shift;
    croak 'create_release_link must be called with 2 to 3 arguments' if @_ < 2 or @_ > 3;
    croak 'The #1 argument ($project_id) to create_release_link must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to create_release_link must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The last argument (\%params) to create_release_link must be a hash ref' if defined($_[2]) and ref($_[2]) ne 'HASH';
    my $params = (@_ == 3) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'POST', 'projects/:project_id/releases/:tag_name/assets/links', [@_], $options );
}

=item update_release_link

    my $link = $api->update_release_link(
        $project_id,
        $tag_name,
        $link_id,
        \%params,
    );

Sends a C<PUT> request to C<projects/:project_id/releases/:tag_name/assets/links/:link_id> and returns the decoded response content.

=cut

sub update_release_link {
    my $self = shift;
    croak 'update_release_link must be called with 3 to 4 arguments' if @_ < 3 or @_ > 4;
    croak 'The #1 argument ($project_id) to update_release_link must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to update_release_link must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The #3 argument ($link_id) to update_release_link must be a scalar' if ref($_[2]) or (!defined $_[2]);
    croak 'The last argument (\%params) to update_release_link must be a hash ref' if defined($_[3]) and ref($_[3]) ne 'HASH';
    my $params = (@_ == 4) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'PUT', 'projects/:project_id/releases/:tag_name/assets/links/:link_id', [@_], $options );
}

=item delete_release_link

    my $link = $api->delete_release_link(
        $project_id,
        $tag_name,
        $link_id,
    );

Sends a C<DELETE> request to C<projects/:project_id/releases/:tag_name/assets/links/:link_id> and returns the decoded response content.

=cut

sub delete_release_link {
    my $self = shift;
    croak 'delete_release_link must be called with 3 arguments' if @_ != 3;
    croak 'The #1 argument ($project_id) to delete_release_link must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to delete_release_link must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The #3 argument ($link_id) to delete_release_link must be a scalar' if ref($_[2]) or (!defined $_[2]);
    my $options = {};
    return $self->_call_rest_client( 'DELETE', 'projects/:project_id/releases/:tag_name/assets/links/:link_id', [@_], $options );
}

=back

=head2 Remote Mirrors

See L<https://docs.gitlab.com/ce/api/remote_mirrors.html>.

=over

=item remote_mirrors

    my $mirrors = $api->remote_mirrors(
        $project_id,
    );

Sends a C<GET> request to C<projects/:project_id/remote_mirrors> and returns the decoded response content.

=cut

sub remote_mirrors {
    my $self = shift;
    croak 'remote_mirrors must be called with 1 arguments' if @_ != 1;
    croak 'The #1 argument ($project_id) to remote_mirrors must be a scalar' if ref($_[0]) or (!defined $_[0]);
    my $options = {};
    return $self->_call_rest_client( 'GET', 'projects/:project_id/remote_mirrors', [@_], $options );
}

lib/GitLab/API/v4.pm  view on Meta::CPAN


sub runners {
    my $self = shift;
    croak 'runners must be called with 0 to 1 arguments' if @_ < 0 or @_ > 1;
    croak 'The last argument (\%params) to runners must be a hash ref' if defined($_[0]) and ref($_[0]) ne 'HASH';
    my $params = (@_ == 1) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;
    return $self->_call_rest_client( 'GET', 'runners', [@_], $options );
}

=item all_runners

    my $runners = $api->all_runners(
        \%params,
    );

Sends a C<GET> request to C<runners/all> and returns the decoded response content.

=cut

sub all_runners {
    my $self = shift;
    croak 'all_runners must be called with 0 to 1 arguments' if @_ < 0 or @_ > 1;
    croak 'The last argument (\%params) to all_runners must be a hash ref' if defined($_[0]) and ref($_[0]) ne 'HASH';
    my $params = (@_ == 1) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;
    return $self->_call_rest_client( 'GET', 'runners/all', [@_], $options );
}

=item runner

    my $runner = $api->runner(
        $runner_id,
    );

Sends a C<GET> request to C<runners/:runner_id> and returns the decoded response content.

=cut

sub runner {
    my $self = shift;
    croak 'runner must be called with 1 arguments' if @_ != 1;
    croak 'The #1 argument ($runner_id) to runner must be a scalar' if ref($_[0]) or (!defined $_[0]);
    my $options = {};
    return $self->_call_rest_client( 'GET', 'runners/:runner_id', [@_], $options );
}

=item update_runner

    my $runner = $api->update_runner(
        $runner_id,
        \%params,
    );

Sends a C<PUT> request to C<runners/:runner_id> and returns the decoded response content.

=cut

sub update_runner {
    my $self = shift;
    croak 'update_runner must be called with 1 to 2 arguments' if @_ < 1 or @_ > 2;
    croak 'The #1 argument ($runner_id) to update_runner must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The last argument (\%params) to update_runner must be a hash ref' if defined($_[1]) and ref($_[1]) ne 'HASH';
    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'PUT', 'runners/:runner_id', [@_], $options );
}

=item delete_runner

    $api->delete_runner(
        $runner_id,
    );

Sends a C<DELETE> request to C<runners/:runner_id>.

=cut

sub delete_runner {
    my $self = shift;
    croak 'delete_runner must be called with 1 arguments' if @_ != 1;
    croak 'The #1 argument ($runner_id) to delete_runner must be a scalar' if ref($_[0]) or (!defined $_[0]);
    my $options = {};
    $options->{decode} = 0;
    $self->_call_rest_client( 'DELETE', 'runners/:runner_id', [@_], $options );
    return;
}

=item runner_jobs

    my $jobs = $api->runner_jobs(
        $runner_id,
        \%params,
    );

Sends a C<GET> request to C<runners/:runner_id/jobs> and returns the decoded response content.

=cut

sub runner_jobs {
    my $self = shift;
    croak 'runner_jobs must be called with 1 to 2 arguments' if @_ < 1 or @_ > 2;
    croak 'The #1 argument ($runner_id) to runner_jobs must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The last argument (\%params) to runner_jobs must be a hash ref' if defined($_[1]) and ref($_[1]) ne 'HASH';
    my $params = (@_ == 2) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;
    return $self->_call_rest_client( 'GET', 'runners/:runner_id/jobs', [@_], $options );
}

=item project_runners

    my $runners = $api->project_runners(
        $project_id,
        \%params,
    );

Sends a C<GET> request to C<projects/:project_id/runners> and returns the decoded response content.

lib/GitLab/API/v4.pm  view on Meta::CPAN

    $options->{content} = $params if defined $params;
    $self->_call_rest_client( 'PUT', 'projects/:project_id/services/:service_name', [@_], $options );
    return;
}

=item delete_project_service

    $api->delete_project_service(
        $project_id,
        $service_name,
    );

Sends a C<DELETE> request to C<projects/:project_id/services/:service_name>.

=cut

sub delete_project_service {
    my $self = shift;
    croak 'delete_project_service must be called with 2 arguments' if @_ != 2;
    croak 'The #1 argument ($project_id) to delete_project_service must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($service_name) to delete_project_service must be a scalar' if ref($_[1]) or (!defined $_[1]);
    my $options = {};
    $options->{decode} = 0;
    $self->_call_rest_client( 'DELETE', 'projects/:project_id/services/:service_name', [@_], $options );
    return;
}

=back

=head2 Application settings

See L<https://docs.gitlab.com/ce/api/settings.html>.

=over

=item settings

    my $settings = $api->settings();

Sends a C<GET> request to C<application/settings> and returns the decoded response content.

=cut

sub settings {
    my $self = shift;
    croak "The settings method does not take any arguments" if @_;
    my $options = {};
    return $self->_call_rest_client( 'GET', 'application/settings', [@_], $options );
}

=item update_settings

    my $settings = $api->update_settings(
        \%params,
    );

Sends a C<PUT> request to C<application/settings> and returns the decoded response content.

=cut

sub update_settings {
    my $self = shift;
    croak 'update_settings must be called with 0 to 1 arguments' if @_ < 0 or @_ > 1;
    croak 'The last argument (\%params) to update_settings must be a hash ref' if defined($_[0]) and ref($_[0]) ne 'HASH';
    my $params = (@_ == 1) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'PUT', 'application/settings', [@_], $options );
}

=back

=head2 Application statistics

See L<https://docs.gitlab.com/ce/api/statistics.html>.

=over

=item statistics

    my $statistics = $api->statistics();

Sends a C<GET> request to C<application/statistics> and returns the decoded response content.

=cut

sub statistics {
    my $self = shift;
    croak "The statistics method does not take any arguments" if @_;
    my $options = {};
    return $self->_call_rest_client( 'GET', 'application/statistics', [@_], $options );
}

=back

=head2 Sidekiq Metrics

See L<https://docs.gitlab.com/ce/api/sidekiq_metrics.html>.

=over

=item queue_metrics

    my $metrics = $api->queue_metrics();

Sends a C<GET> request to C<sidekiq/queue_metrics> and returns the decoded response content.

=cut

sub queue_metrics {
    my $self = shift;
    croak "The queue_metrics method does not take any arguments" if @_;
    my $options = {};
    return $self->_call_rest_client( 'GET', 'sidekiq/queue_metrics', [@_], $options );
}

=item process_metrics

    my $metrics = $api->process_metrics();

Sends a C<GET> request to C<sidekiq/process_metrics> and returns the decoded response content.

lib/GitLab/API/v4.pm  view on Meta::CPAN

}

=item delete_tag

    $api->delete_tag(
        $project_id,
        $tag_name,
    );

Sends a C<DELETE> request to C<projects/:project_id/repository/tags/:tag_name>.

=cut

sub delete_tag {
    my $self = shift;
    croak 'delete_tag must be called with 2 arguments' if @_ != 2;
    croak 'The #1 argument ($project_id) to delete_tag must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to delete_tag must be a scalar' if ref($_[1]) or (!defined $_[1]);
    my $options = {};
    $options->{decode} = 0;
    $self->_call_rest_client( 'DELETE', 'projects/:project_id/repository/tags/:tag_name', [@_], $options );
    return;
}

=item create_tag_release

    my $release = $api->create_tag_release(
        $project_id,
        $tag_name,
        \%params,
    );

Sends a C<POST> request to C<projects/:project_id/repository/tags/:tag_name/release> and returns the decoded response content.

=cut

sub create_tag_release {
    my $self = shift;
    croak 'create_tag_release must be called with 2 to 3 arguments' if @_ < 2 or @_ > 3;
    croak 'The #1 argument ($project_id) to create_tag_release must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to create_tag_release must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The last argument (\%params) to create_tag_release must be a hash ref' if defined($_[2]) and ref($_[2]) ne 'HASH';
    my $params = (@_ == 3) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'POST', 'projects/:project_id/repository/tags/:tag_name/release', [@_], $options );
}

=item update_tag_release

    my $release = $api->update_tag_release(
        $project_id,
        $tag_name,
        \%params,
    );

Sends a C<PUT> request to C<projects/:project_id/repository/tags/:tag_name/release> and returns the decoded response content.

=cut

sub update_tag_release {
    my $self = shift;
    croak 'update_tag_release must be called with 2 to 3 arguments' if @_ < 2 or @_ > 3;
    croak 'The #1 argument ($project_id) to update_tag_release must be a scalar' if ref($_[0]) or (!defined $_[0]);
    croak 'The #2 argument ($tag_name) to update_tag_release must be a scalar' if ref($_[1]) or (!defined $_[1]);
    croak 'The last argument (\%params) to update_tag_release must be a hash ref' if defined($_[2]) and ref($_[2]) ne 'HASH';
    my $params = (@_ == 3) ? pop() : undef;
    my $options = {};
    $options->{content} = $params if defined $params;
    return $self->_call_rest_client( 'PUT', 'projects/:project_id/repository/tags/:tag_name/release', [@_], $options );
}

=back

=head2 Todos

See L<https://docs.gitlab.com/ce/api/todos.html>.

=over

=item todos

    my $todos = $api->todos(
        \%params,
    );

Sends a C<GET> request to C<todos> and returns the decoded response content.

=cut

sub todos {
    my $self = shift;
    croak 'todos must be called with 0 to 1 arguments' if @_ < 0 or @_ > 1;
    croak 'The last argument (\%params) to todos must be a hash ref' if defined($_[0]) and ref($_[0]) ne 'HASH';
    my $params = (@_ == 1) ? pop() : undef;
    my $options = {};
    $options->{query} = $params if defined $params;
    return $self->_call_rest_client( 'GET', 'todos', [@_], $options );
}

=item mark_todo_done

    my $todo = $api->mark_todo_done(
        $todo_id,
    );

Sends a C<POST> request to C<todos/:todo_id/mark_as_done> and returns the decoded response content.

=cut

sub mark_todo_done {
    my $self = shift;
    croak 'mark_todo_done must be called with 1 arguments' if @_ != 1;
    croak 'The #1 argument ($todo_id) to mark_todo_done must be a scalar' if ref($_[0]) or (!defined $_[0]);
    my $options = {};
    return $self->_call_rest_client( 'POST', 'todos/:todo_id/mark_as_done', [@_], $options );
}

=item mark_all_todos_done

    $api->mark_all_todos_done();



( run in 1.366 second using v1.01-cache-2.11-cpan-d7f47b0818f )