NAME

GitLab::API::v4 - A complete GitLab API v4 client.

SYNOPSIS

    use GitLab::API::v4;
    
    my $api = GitLab::API::v4->new(
        url           => $v4_api_url,
        private_token => $token,
    );
    
    my $branches = $api->branches( $project_id );

DESCRIPTION

This module provides a one-to-one interface with the GitLab API v4. Much is not documented here as it would just be duplicating GitLab's own API Documentation.

Note that this distribution also includes the gitlab-api-v4 command-line interface (CLI).

UPGRADING

If you are upgrading from GitLab::API::v3 make sure you read:

https://docs.gitlab.com/ce/api/v3_to_v4.html

Also, review the Changes file included in the distribution as it outlines the changes made to convert the v3 module to v4:

https://github.com/bluefeet/GitLab-API-v4/blob/master/Changes

Finally, be aware that many methods were added, removed, renamed, and/or altered. If you want to review exactly what was changed you can use GitHub's compare tool:

https://github.com/bluefeet/GitLab-API-v4/compare/72e384775c9570f60f8ef68dee3a1eecd347fb69...master

Or clone the repo and run this command:

git diff 72e384775c9570f60f8ef68dee3a1eecd347fb69..HEAD -- author/sections/

CREDENTIALS

Authentication credentials may be defined by setting either the "access_token" or "private_token" arguments.

If no credentials are supplied then the client will be anonymous and greatly limited in what it can do with the API.

CONSTANTS

The GitLab API, in rare cases, uses a numeric value to represent a state. To make life easier the GitLab::API::v4::Constants module exposes these states as named variables.

EXCEPTIONS

The API methods will all throw (hopefully) a useful exception if an unsuccessful response is received from the API. That is except for GET requests that return a 404 response - these will return undef for methods that return a value.

If you'd like to catch and handle these exceptions consider using Try::Tiny.

LOGGING

This module uses Log::Any and produces some debug messages here and there, but the most useful bits are the info messages produced just before each API call.

PROJECT ID

Note that many API calls require a $project_id. This can be specified as either a numeric project ID, or as a NAMESPACE_PATH/PROJECT_PATH in many cases. Perhaps even all cases, but the GitLab documentation on this point is vague.

REQUIRED ARGUMENTS

url

The URL to your v4 API endpoint. Typically this will be something like https://git.example.com/api/v4.

OPTIONAL ARGUMENTS

access_token

A GitLab API OAuth2 token. If set then "private_token" may not be set.

See https://docs.gitlab.com/ce/api/#oauth2-tokens.

private_token

A GitLab API personal token. If set then "access_token" may not be set.

See https://docs.gitlab.com/ce/api/#personal-access-tokens.

sudo_user

The user to execute API calls as. You may find it more useful to use the "sudo" method instead.

See https://docs.gitlab.com/ce/api/#sudo.

retries

The number of times the request should be retried in case it does not succeed. Defaults to 0 (false), meaning that a failed request will not be retried.

rest_client

An instance of GitLab::API::v4::RESTClient. Typically you will not be setting this as it defaults to a new instance and customization should not be necessary.

UTILITY METHODS

paginator

    my $paginator = $api->paginator( $method, @method_args );
    
    my $members = $api->paginator('group_members', $group_id);
    while (my $member = $members->next()) {
        ...
    }
    
    my $users_pager = $api->paginator('users');
    while (my $users = $users_pager->next_page()) {
        ...
    }
    
    my $all_open_issues = $api->paginator(
        'issues',
        $project_id,
        { state=>'opened' },
    )->all();

Given a method who supports the page and per_page parameters, and returns an array ref, this will return a GitLab::API::v4::Paginator object that will allow you to walk the records one page or one record at a time.

sudo

    $api->sudo('fred')->create_issue(...);

Returns a new instance of GitLab::API::v4 with the "sudo_user" argument set.

See https://docs.gitlab.com/ce/api/#sudo.

AWARD EMOJI METHODS

See https://docs.gitlab.com/ce/api/award_emoji.html.

issue_award_emojis

    my $award_emojis = $api->issue_award_emojis(
        $project_id,
        $issue_iid,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/award_emoji and returns the decoded/deserialized response body.

merge_request_award_emojis

    my $award_emojis = $api->merge_request_award_emojis(
        $project_id,
        $merge_request_iid,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/award_emoji and returns the decoded/deserialized response body.

snippet_award_emojis

    my $award_emojis = $api->snippet_award_emojis(
        $project_id,
        $merge_request_id,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_id/award_emoji and returns the decoded/deserialized response body.

issue_award_emoji

    my $award_emoji = $api->issue_award_emoji(
        $project_id,
        $issue_iid,
        $award_id,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/award_emoji/:award_id and returns the decoded/deserialized response body.

merge_request_award_emoji

    my $award_emoji = $api->merge_request_award_emoji(
        $project_id,
        $merge_request_iid,
        $award_id,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/award_emoji/:award_id and returns the decoded/deserialized response body.

snippet_award_emoji

    my $award_emoji = $api->snippet_award_emoji(
        $project_id,
        $snippet_id,
        $award_id,
    );

Sends a GET request to /projects/:project_id/snippets/:snippet_id/award_emoji/:award_id and returns the decoded/deserialized response body.

create_issue_award_emoji

    my $award_emoji = $api->create_issue_award_emoji(
        $project_id,
        $issue_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/award_emoji and returns the decoded/deserialized response body.

create_merge_request_award_emoji

    my $award_emoji = $api->create_merge_request_award_emoji(
        $project_id,
        $merge_request_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/award_emoji and returns the decoded/deserialized response body.

create_snippet_award_emoji

    my $award_emoji = $api->create_snippet_award_emoji(
        $project_id,
        $snippet_id,
    );

Sends a POST request to /projects/:project_id/snippets/:snippet_id/award_emoji and returns the decoded/deserialized response body.

delete_issue_award_emoji

    my $award_emoji = $api->delete_issue_award_emoji(
        $project_id,
        $issue_id,
        $award_id,
    );

Sends a DELETE request to /projects/:project_id/issues/:issue_id/award_emoji/:award_id and returns the decoded/deserialized response body.

delete_merge_request_award_emoji

    my $award_emoji = $api->delete_merge_request_award_emoji(
        $project_id,
        $merge_request_id,
        $award_id,
    );

Sends a DELETE request to /projects/:project_id/merge_requests/:merge_request_id/award_emoji/:award_id and returns the decoded/deserialized response body.

delete_snippet_award_emoji

    my $award_emoji = $api->delete_snippet_award_emoji(
        $project_id,
        $snippet_id,
        $award_id,
    );

Sends a DELETE request to /projects/:project_id/snippets/:snippet_id/award_emoji/:award_id and returns the decoded/deserialized response body.

issue_note_award_emojis

    my $award_emojis = $api->issue_note_award_emojis(
        $project_id,
        $issue_iid,
        $note_id,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji and returns the decoded/deserialized response body.

issue_note_award_emoji

    my $award_emoji = $api->issue_note_award_emoji(
        $project_id,
        $issue_iid,
        $note_id,
        $award_id,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id and returns the decoded/deserialized response body.

create_issue_note_award_emoji

    my $award_emoji = $api->create_issue_note_award_emoji(
        $project_id,
        $issue_iid,
        $note_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji and returns the decoded/deserialized response body.

delete_issue_note_award_emoji

    my $award_emoji = $api->delete_issue_note_award_emoji(
        $project_id,
        $issue_iid,
        $note_id,
        $award_id,
    );

Sends a DELETE request to /projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id and returns the decoded/deserialized response body.

merge_request_note_award_emojis

    my $award_emojis = $api->merge_request_note_award_emojis(
        $project_id,
        $merge_request_iid,
        $note_id,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji and returns the decoded/deserialized response body.

merge_request_note_award_emoji

    my $award_emoji = $api->merge_request_note_award_emoji(
        $project_id,
        $merge_request_iid,
        $note_id,
        $award_id,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji/:award_id and returns the decoded/deserialized response body.

create_merge_request_note_award_emoji

    my $award_emoji = $api->create_merge_request_note_award_emoji(
        $project_id,
        $merge_request_iid,
        $note_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji and returns the decoded/deserialized response body.

delete_merge_request_note_award_emoji

    my $award_emoji = $api->delete_merge_request_note_award_emoji(
        $project_id,
        $merge_request_iid,
        $note_id,
        $award_id,
    );

Sends a DELETE request to /projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji/:award_id and returns the decoded/deserialized response body.

BRANCH METHODS

See https://doc.gitlab.com/ce/api/branches.html.

branches

    my $branches = $api->branches(
        $project_id,
    );

Sends a GET request to /projects/:project_id/repository/branches and returns the decoded/deserialized response body.

branch

    my $branch = $api->branch(
        $project_id,
        $branch_name,
    );

Sends a GET request to /projects/:project_id/repository/branches/:branch_name and returns the decoded/deserialized response body.

create_branch

    my $branch = $api->create_branch(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/repository/branches and returns the decoded/deserialized response body.

delete_branch

    $api->delete_branch(
        $project_id,
        $branch_name,
    );

Sends a DELETE request to /projects/:project_id/repository/branches/:branch_name.

delete_merged_branches

    $api->delete_merged_branches(
        $project_id,
    );

Sends a DELETE request to /projects/:project_id/repository/merged_branches.

BROADCAST MESSAGE METHODS

See https://docs.gitlab.com/ce/api/broadcast_messages.html.

broadcast_messages

    my $messages = $api->broadcast_messages();

Sends a GET request to /broadcast_messages and returns the decoded/deserialized response body.

broadcast_message

    my $message = $api->broadcast_message(
        $message_id,
    );

Sends a GET request to /broadcast_messages/:message_id and returns the decoded/deserialized response body.

create_broadcast_message

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

Sends a POST request to /broadcast_messages and returns the decoded/deserialized response body.

edit_broadcast_message

    my $message = $api->edit_broadcast_message(
        $message_id,
        \%params,
    );

Sends a PUT request to /broadcast_messages/:message_id and returns the decoded/deserialized response body.

delete_broadcast_message

    $api->delete_broadcast_message(
        $message_id,
    );

Sends a DELETE request to /broadcast_messages/:message_id.

PROJECT LEVEL VARIABLE METHODS

See https://docs.gitlab.com/ce/api/project_level_variables.html.

project_variables

    my $variables = $api->project_variables(
        $project_id,
    );

Sends a GET request to /projects/:project_id/variables and returns the decoded/deserialized response body.

project_variable

    my $variable = $api->project_variable(
        $project_id,
        $variable_key,
    );

Sends a GET request to /projects/:project_id/variables/:variable_key and returns the decoded/deserialized response body.

create_project_variable

    my $variable = $api->create_project_variable(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/variables and returns the decoded/deserialized response body.

edit_project_variable

    my $variable = $api->edit_project_variable(
        $project_id,
        $variable_key,
        \%params,
    );

Sends a PUT request to /projects/:project_id/variables/:variable_key and returns the decoded/deserialized response body.

delete_project_variable

    $api->delete_project_variable(
        $project_id,
        $variable_key,
    );

Sends a DELETE request to /projects/:project_id/variables/:variable_key.

GROUP LEVEL VARIABLE METHODS

See https://docs.gitlab.com/ce/api/group_level_variables.html.

group_variables

    my $variables = $api->group_variables(
        $group_id,
    );

Sends a GET request to /groups/:group_id/variables and returns the decoded/deserialized response body.

group_variable

    my $variable = $api->group_variable(
        $group_id,
        $variable_key,
    );

Sends a GET request to /groups/:group_id/variables/:variable_key and returns the decoded/deserialized response body.

create_group_variable

    my $variable = $api->create_group_variable(
        $group_id,
        \%params,
    );

Sends a POST request to /groups/:group_id/variables and returns the decoded/deserialized response body.

edit_group_variable

    my $variable = $api->edit_group_variable(
        $group_id,
        $variable_key,
        \%params,
    );

Sends a PUT request to /groups/:group_id/variables/:variable_key and returns the decoded/deserialized response body.

delete_group_variable

    $api->delete_group_variable(
        $group_id,
        $variable_key,
    );

Sends a DELETE request to /groups/:group_id/variables/:variable_key.

COMMIT METHODS

See https://doc.gitlab.com/ce/api/commits.html.

commits

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

Sends a GET request to /projects/:project_id/repository/commits and returns the decoded/deserialized response body.

create_commit

    my $commit = $api->create_commit(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/repository/commits and returns the decoded/deserialized response body.

commit

    my $commit = $api->commit(
        $project_id,
        $commit_sha,
    );

Sends a GET request to /projects/:project_id/repository/commits/:commit_sha and returns the decoded/deserialized response body.

cherry_pick_commit

    my $commit = $api->cherry_pick_commit(
        $project_id,
        $commit_sha,
        \%params,
    );

Sends a POST request to /projects/:project_id/repository/commits/:commit_sha/cherry_pick and returns the decoded/deserialized response body.

commit_diff

    my $diff = $api->commit_diff(
        $project_id,
        $commit_sha,
    );

Sends a GET request to /projects/:project_id/repository/commits/:commit_sha/diff and returns the decoded/deserialized response body.

commit_comments

    my $comments = $api->commit_comments(
        $project_id,
        $commit_sha,
    );

Sends a GET request to /projects/:project_id/repository/commits/:commit_sha/comments and returns the decoded/deserialized response body.

create_commit_comment

    $api->create_commit_comment(
        $project_id,
        $commit_sha,
        \%params,
    );

Sends a POST request to /projects/:project_id/repository/commits/:commit_sha/comments.

commit_statuses

    my $build_statuses = $api->commit_statuses(
        $project_id,
        $commit_sha,
        \%params,
    );

Sends a GET request to /projects/:project_id/repository/commits/:commit_sha/statuses and returns the decoded/deserialized response body.

create_commit_status

    my $build_status = $api->create_commit_status(
        $project_id,
        $commit_sha,
        \%params,
    );

Sends a POST request to /projects/:project_id/statuses/:commit_sha and returns the decoded/deserialized response body.

CUSTOM ATTRIBUTE METHODS

See https://docs.gitlab.com/ce/api/custom_attributes.html.

custom_user_attributes

    my $attributes = $api->custom_user_attributes(
        $user_id,
    );

Sends a GET request to /users/:user_id/custom_attributes and returns the decoded/deserialized response body.

custom_group_attributes

    my $attributes = $api->custom_group_attributes(
        $group_id,
    );

Sends a GET request to /groups/:group_id/custom_attributes and returns the decoded/deserialized response body.

custom_project_attributes

    my $attributes = $api->custom_project_attributes(
        $project_id,
    );

Sends a GET request to /projects/:project_id/custom_attributes and returns the decoded/deserialized response body.

custom_user_attribute

    my $attribute = $api->custom_user_attribute(
        $user_id,
        $attribute_key,
    );

Sends a GET request to /users/:user_id/custom_attributes/:attribute_key and returns the decoded/deserialized response body.

custom_group_attribute

    my $attribute = $api->custom_group_attribute(
        $group_id,
        $attribute_key,
    );

Sends a GET request to /groups/:group_id/custom_attributes/:attribute_key and returns the decoded/deserialized response body.

custom_project_attribute

    my $attribute = $api->custom_project_attribute(
        $project_id,
        $attribute_key,
    );

Sends a GET request to /projects/:project_id/custom_attributes/:attribute_key and returns the decoded/deserialized response body.

set_custom_user_attribute

    my $attribute = $api->set_custom_user_attribute(
        $user_id,
        $attribute_key,
        \%params,
    );

Sends a PUT request to /users/:user_id/custom_attributes/:attribute_key and returns the decoded/deserialized response body.

set_custom_group_attribute

    my $attribute = $api->set_custom_group_attribute(
        $group_id,
        $attribute_key,
        \%params,
    );

Sends a PUT request to /groups/:group_id/custom_attributes/:attribute_key and returns the decoded/deserialized response body.

set_custom_project_attribute

    my $attribute = $api->set_custom_project_attribute(
        $project_id,
        $attribute_key,
        \%params,
    );

Sends a PUT request to /projects/:project_id/custom_attributes/:attribute_key and returns the decoded/deserialized response body.

delete_custom_user_attribute

    $api->delete_custom_user_attribute(
        $user_id,
        $attribute_key,
    );

Sends a DELETE request to /users/:user_id/custom_attributes/:attribute_key.

delete_custom_group_attribute

    $api->delete_custom_group_attribute(
        $group_id,
        $attribute_key,
    );

Sends a DELETE request to /groups/:group_id/custom_attributes/:attribute_key.

delete_custom_project_attribute

    $api->delete_custom_project_attribute(
        $project_id,
        $attribute_key,
    );

Sends a DELETE request to /projects/:project_id/custom_attributes/:attribute_key.

DEPLOYMENT METHODS

See https://docs.gitlab.com/ce/api/deployments.html.

deployments

    my $deployments = $api->deployments(
        $project_id,
    );

Sends a GET request to /projects/:project_id/deployments and returns the decoded/deserialized response body.

deployment

    my $deployment = $api->deployment(
        $project_id,
        $deployment_id,
    );

Sends a GET request to /projects/:project_id/deployments/:deployment_id and returns the decoded/deserialized response body.

DEPLOY KEY METHODS

See https://docs.gitlab.com/ce/api/deploy_keys.html.

all_deploy_keys

    my $keys = $api->all_deploy_keys();

Sends a GET request to /deploy_keys and returns the decoded/deserialized response body.

deploy_keys

    my $keys = $api->deploy_keys(
        $project_id,
    );

Sends a GET request to /projects/:project_id/deploy_keys and returns the decoded/deserialized response body.

deploy_key

    my $key = $api->deploy_key(
        $project_id,
        $key_id,
    );

Sends a GET request to /projects/:project_id/deploy_keys/:key_id and returns the decoded/deserialized response body.

create_deploy_key

    my $key = $api->create_deploy_key(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/deploy_keys and returns the decoded/deserialized response body.

delete_deploy_key

    $api->delete_deploy_key(
        $project_id,
        $key_id,
    );

Sends a DELETE request to /projects/:project_id/deploy_keys/:key_id.

enable_deploy_key

    my $key = $api->enable_deploy_key(
        $project_id,
        $key_id,
    );

Sends a POST request to /projects/:project_id/deploy_keys/:key_id/enable and returns the decoded/deserialized response body.

ENVIRONMENT METHODS

See https://docs.gitlab.com/ce/api/environments.html.

environments

    my $environments = $api->environments(
        $project_id,
    );

Sends a GET request to /projects/:project_id/environments and returns the decoded/deserialized response body.

create_environment

    my $environment = $api->create_environment(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/environments and returns the decoded/deserialized response body.

edit_environment

    my $environment = $api->edit_environment(
        $project_id,
        $environments_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/environments/:environments_id and returns the decoded/deserialized response body.

delete_environment

    $api->delete_environment(
        $project_id,
        $environment_id,
    );

Sends a DELETE request to /projects/:project_id/environments/:environment_id.

stop_environment

    my $environment = $api->stop_environment(
        $project_id,
        $environment_id,
    );

Sends a POST request to /projects/:project_id/environments/:environment_id/stop and returns the decoded/deserialized response body.

EVENT METHODS

See https://docs.gitlab.com/ce/api/events.html.

all_events

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

Sends a GET request to /events and returns the decoded/deserialized response body.

user_events

    my $events = $api->user_events(
        $user_id,
        \%params,
    );

Sends a GET request to /users/:user_id/events and returns the decoded/deserialized response body.

project_events

    my $events = $api->project_events(
        $project_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/events and returns the decoded/deserialized response body.

FEATURE FLAG METHODS

See https://docs.gitlab.com/ce/api/features.html.

features

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

Sends a GET request to /features and returns the decoded/deserialized response body.

set_feature

    my $feature = $api->set_feature(
        $name,
        \%params,
    );

Sends a POST request to /features/:name and returns the decoded/deserialized response body.

GITIGNORES TEMPLATE METHODS

See https://docs.gitlab.com/ce/api/templates/gitignores.html.

gitignores_templates

    my $templates = $api->gitignores_templates();

Sends a GET request to /templates/gitignores and returns the decoded/deserialized response body.

gitignores_template

    my $template = $api->gitignores_template(
        $template_key,
    );

Sends a GET request to /templates/gitignores/:template_key and returns the decoded/deserialized response body.

GITLAB CI CONFIG TEMPLATE METHODS

See https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html.

gitlab_ci_ymls_templates

    my $templates = $api->gitlab_ci_ymls_templates();

Sends a GET request to /templates/gitlab_ci_ymls and returns the decoded/deserialized response body.

gitlab_ci_ymls_template

    my $template = $api->gitlab_ci_ymls_template(
        $template_key,
    );

Sends a GET request to /templates/gitlab_ci_ymls/:template_key and returns the decoded/deserialized response body.

GROUP METHODS

See https://docs.gitlab.com/ce/api/groups.html.

groups

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

Sends a GET request to /groups and returns the decoded/deserialized response body.

group_subgroups

    my $subgroups = $api->group_subgroups(
        $group_id,
        \%params,
    );

Sends a GET request to /groups/:group_id/subgroups and returns the decoded/deserialized response body.

group_projects

    my $projects = $api->group_projects(
        $group_id,
        \%params,
    );

Sends a GET request to /groups/:group_id/projects and returns the decoded/deserialized response body.

group

    my $group = $api->group(
        $group_id,
    );

Sends a GET request to /groups/:group_id and returns the decoded/deserialized response body.

create_group

    $api->create_group(
        \%params,
    );

Sends a POST request to /groups.

transfer_project_to_group

    $api->transfer_project_to_group(
        $group_id,
        $project_id,
    );

Sends a POST request to /groups/:group_id/projects/:project_id.

edit_group

    my $group = $api->edit_group(
        $group_id,
        \%params,
    );

Sends a PUT request to /groups/:group_id and returns the decoded/deserialized response body.

delete_group

    $api->delete_group(
        $group_id,
    );

Sends a DELETE request to /groups/:group_id.

sync_group_with_ldap

    $api->sync_group_with_ldap(
        $group_id,
    );

Sends a POST request to /groups/:group_id/ldap_sync.

    $api->create_ldap_group_link(
        $group_id,
        \%params,
    );

Sends a POST request to /groups/:group_id/ldap_group_links.

    $api->delete_ldap_group_link(
        $group_id,
        $cn,
    );

Sends a DELETE request to /groups/:group_id/ldap_group_links/:cn.

    $api->delete_ldap_provider_group_link(
        $group_id,
        $provider,
        $cn,
    );

Sends a DELETE request to /groups/:group_id/ldap_group_links/:provider/:cn.

GROUP AND PROJECT MEMBER METHODS

See https://docs.gitlab.com/ce/api/members.html.

group_members

    my $members = $api->group_members(
        $group_id,
        \%params,
    );

Sends a GET request to /groups/:group_id/members and returns the decoded/deserialized response body.

project_members

    my $members = $api->project_members(
        $project_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/members and returns the decoded/deserialized response body.

group_member

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

Sends a GET request to /groups/:project_id/members/:user_id and returns the decoded/deserialized response body.

project_member

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

Sends a GET request to /projects/:project_id/members/:user_id and returns the decoded/deserialized response body.

add_group_member

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

Sends a POST request to /groups/:group_id/members and returns the decoded/deserialized response body.

add_project_member

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

Sends a POST request to /projects/:project_id/members and returns the decoded/deserialized response body.

update_group_member

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

Sends a PUT request to /groups/:group_id/members/:user_id and returns the decoded/deserialized response body.

update_project_member

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

Sends a PUT request to /projects/:project_id/members/:user_id and returns the decoded/deserialized response body.

remove_group_member

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

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

remove_project_member

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

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

ISSUE METHODS

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

global_issues

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

Sends a GET request to /issues and returns the decoded/deserialized response body.

group_issues

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

Sends a GET request to /groups/:group_id/issues and returns the decoded/deserialized response body.

issues

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

Sends a GET request to /projects/:project_id/issues and returns the decoded/deserialized response body.

issue

    my $issue = $api->issue(
        $project_id,
        $issue_iid,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid and returns the decoded/deserialized response body.

create_issue

    my $issue = $api->create_issue(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/issues and returns the decoded/deserialized response body.

edit_issue

    my $issue = $api->edit_issue(
        $project_id,
        $issue_iid,
        \%params,
    );

Sends a PUT request to /projects/:project_id/issues/:issue_iid and returns the decoded/deserialized response body.

delete_issue

    $api->delete_issue(
        $project_id,
        $issue_iid,
    );

Sends a DELETE request to /projects/:project_id/issues/:issue_iid.

move_issue

    my $issue = $api->move_issue(
        $project_id,
        $issue_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/move and returns the decoded/deserialized response body.

subscribe_to_issue

    my $issue = $api->subscribe_to_issue(
        $project_id,
        $issue_iid,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/subscribe and returns the decoded/deserialized response body.

unsubscribe_from_issue

    my $issue = $api->unsubscribe_from_issue(
        $project_id,
        $issue_iid,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/unsubscribe and returns the decoded/deserialized response body.

create_issue_todo

    my $todo = $api->create_issue_todo(
        $project_id,
        $issue_iid,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/todo and returns the decoded/deserialized response body.

set_issue_time_estimate

    my $tracking = $api->set_issue_time_estimate(
        $project_id,
        $issue_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/time_estimate and returns the decoded/deserialized response body.

reset_issue_time_estimate

    my $tracking = $api->reset_issue_time_estimate(
        $project_id,
        $issue_iid,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/reset_time_estimate and returns the decoded/deserialized response body.

add_issue_spent_time

    my $tracking = $api->add_issue_spent_time(
        $project_id,
        $issue_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/add_spent_time and returns the decoded/deserialized response body.

reset_issue_spent_time

    my $tracking = $api->reset_issue_spent_time(
        $project_id,
        $issue_iid,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/reset_spent_time and returns the decoded/deserialized response body.

issue_time_stats

    my $tracking = $api->issue_time_stats(
        $project_id,
        $issue_iid,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/time_stats and returns the decoded/deserialized response body.

issue_closed_by

    my $merge_requests = $api->issue_closed_by(
        $project_id,
        $issue_iid,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/closed_by and returns the decoded/deserialized response body.

issue_user_agent_detail

    my $user_agent = $api->issue_user_agent_detail(
        $project_id,
        $issue_iid,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/user_agent_detail and returns the decoded/deserialized response body.

ISSUE BOARD METHODS

See https://docs.gitlab.com/ce/api/boards.html.

project_boards

    my $boards = $api->project_boards(
        $project_id,
    );

Sends a GET request to /projects/:project_id/boards and returns the decoded/deserialized response body.

project_board_lists

    my $lists = $api->project_board_lists(
        $project_id,
        $board_id,
    );

Sends a GET request to /projects/:project_id/boards/:board_id/lists and returns the decoded/deserialized response body.

project_board_list

    my $list = $api->project_board_list(
        $project_id,
        $board_id,
        $list_id,
    );

Sends a GET request to /projects/:project_id/boards/:board_id/lists/:list_id and returns the decoded/deserialized response body.

create_project_board_list

    my $list = $api->create_project_board_list(
        $project_id,
        $board_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/boards/:board_id/lists and returns the decoded/deserialized response body.

edit_project_board_list

    my $list = $api->edit_project_board_list(
        $project_id,
        $board_id,
        $list_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/boards/:board_id/lists/:list_id and returns the decoded/deserialized response body.

delete_project_board_list

    $api->delete_project_board_list(
        $project_id,
        $board_id,
        $list_id,
    );

Sends a DELETE request to /projects/:project_id/boards/:board_id/lists/:list_id.

JOB METHODS

See https://docs.gitlab.com/ce/api/jobs.html.

jobs

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

Sends a GET request to /projects/:project_id/jobs and returns the decoded/deserialized response body.

pipeline_jobs

    my $jobs = $api->pipeline_jobs(
        $project_id,
        $pipeline_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/pipelines/:pipeline_id/jobs and returns the decoded/deserialized response body.

job

    my $job = $api->job(
        $project_id,
        $job_id,
    );

Sends a GET request to /projects/:project_id/jobs/:job_id and returns the decoded/deserialized response body.

job_artifacts

    my $artifacts = $api->job_artifacts(
        $project_id,
        $job_id,
    );

Sends a GET request to /projects/:project_id/jobs/:job_id/artifacts and returns the decoded/deserialized response body.

job_artifacts_archive

    my $archive = $api->job_artifacts_archive(
        $project_id,
        $ref_name,
        \%params,
    );

Sends a GET request to /projects/:project_id/jobs/artifacts/:ref_name/download and returns the decoded/deserialized response body.

job_artifacts_file

    my $file = $api->job_artifacts_file(
        $project_id,
        $job_id,
        $artifact_path,
    );

Sends a GET request to /projects/:project_id/jobs/:job_id/artifacts/:artifact_path and returns the decoded/deserialized response body.

job_trace_file

    my $file = $api->job_trace_file(
        $project_id,
        $job_id,
    );

Sends a GET request to /projects/:project_id/jobs/:job_id/trace and returns the decoded/deserialized response body.

cancel_job

    my $job = $api->cancel_job(
        $project_id,
        $job_id,
    );

Sends a POST request to /projects/:project_id/jobs/:job_id/cancel and returns the decoded/deserialized response body.

retry_job

    my $job = $api->retry_job(
        $project_id,
        $job_id,
    );

Sends a POST request to /projects/:project_id/jobs/:job_id/retry and returns the decoded/deserialized response body.

erase_job

    my $job = $api->erase_job(
        $project_id,
        $job_id,
    );

Sends a POST request to /projects/:project_id/jobs/:job_id/erase and returns the decoded/deserialized response body.

keep_job_artifacts

    my $job = $api->keep_job_artifacts(
        $project_id,
        $job_id,
    );

Sends a POST request to /projects/:project_id/jobs/:job_id/artifacts/keep and returns the decoded/deserialized response body.

play_job

    my $job = $api->play_job(
        $project_id,
        $job_id,
    );

Sends a POST request to /projects/:project_id/jobs/:job_id/play and returns the decoded/deserialized response body.

KEY METHODS

See https://docs.gitlab.com/ce/api/keys.html.

key

    my $key = $api->key(
        $key_id,
    );

Sends a GET request to /keys/:key_id and returns the decoded/deserialized response body.

LABEL METHODS

See https://docs.gitlab.com/ce/api/labels.html.

labels

    my $labels = $api->labels(
        $project_id,
    );

Sends a GET request to /projects/:project_id/labels and returns the decoded/deserialized response body.

create_label

    my $label = $api->create_label(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/labels and returns the decoded/deserialized response body.

delete_label

    $api->delete_label(
        $project_id,
        \%params,
    );

Sends a DELETE request to /projects/:project_id/labels.

edit_label

    my $label = $api->edit_label(
        $project_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/labels and returns the decoded/deserialized response body.

subscribe_to_label

    my $label = $api->subscribe_to_label(
        $project_id,
        $label_id,
    );

Sends a POST request to /projects/:project_id/labels/:label_id/subscribe and returns the decoded/deserialized response body.

unsubscribe_from_label

    $api->unsubscribe_from_label(
        $project_id,
        $label_id,
    );

Sends a POST request to /projects/:project_id/labels/:label_id/unsubscribe.

MERGE REQUEST METHODS

See https://docs.gitlab.com/ce/api/merge_requests.html.

global_merge_requests

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

Sends a GET request to /merge_requests and returns the decoded/deserialized response body.

merge_requests

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

Sends a GET request to /projects/:project_id/merge_requests and returns the decoded/deserialized response body.

merge_request

    my $merge_request = $api->merge_request(
        $project_id,
        $merge_request_iid,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid and returns the decoded/deserialized response body.

merge_request_commits

    my $commits = $api->merge_request_commits(
        $project_id,
        $merge_request_iid,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/commits and returns the decoded/deserialized response body.

merge_request_with_changes

    my $merge_request = $api->merge_request_with_changes(
        $project_id,
        $merge_request_iid,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/changes and returns the decoded/deserialized response body.

create_merge_request

    my $merge_request = $api->create_merge_request(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/merge_requests and returns the decoded/deserialized response body.

edit_merge_request

    my $merge_request = $api->edit_merge_request(
        $project_id,
        $merge_request_iid,
        \%params,
    );

Sends a PUT request to /projects/:project_id/merge_requests/:merge_request_iid and returns the decoded/deserialized response body.

delete_merge_request

    $api->delete_merge_request(
        $project_id,
        $merge_request_iid,
    );

Sends a DELETE request to /projects/:project_id/merge_requests/:merge_request_iid.

accept_merge_request

    my $merge_request = $api->accept_merge_request(
        $project_id,
        $merge_request_iid,
        \%params,
    );

Sends a PUT request to /projects/:project_id/merge_requests/:merge_request_iid/merge and returns the decoded/deserialized response body.

cancel_merge_when_pipeline_succeeds

    my $merge_request = $api->cancel_merge_when_pipeline_succeeds(
        $project_id,
        $merge_request_iid,
    );

Sends a PUT request to /projects/:project_id/merge_requests/:merge_request_iid/cancel_merge_when_pipeline_succeeds and returns the decoded/deserialized response body.

merge_request_closes_issues

    my $issues = $api->merge_request_closes_issues(
        $project_id,
        $merge_request_iid,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/closes_issues and returns the decoded/deserialized response body.

subscribe_to_merge_request

    my $merge_request = $api->subscribe_to_merge_request(
        $project_id,
        $merge_request_iid,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/subscribe and returns the decoded/deserialized response body.

unsubscribe_from_merge_request

    my $merge_request = $api->unsubscribe_from_merge_request(
        $project_id,
        $merge_request_iid,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/unsubscribe and returns the decoded/deserialized response body.

create_merge_request_todo

    my $todo = $api->create_merge_request_todo(
        $project_id,
        $merge_request_iid,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/todo and returns the decoded/deserialized response body.

merge_request_diff_versions

    my $versions = $api->merge_request_diff_versions(
        $project_id,
        $merge_request_iid,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/versions and returns the decoded/deserialized response body.

merge_request_diff_version

    my $version = $api->merge_request_diff_version(
        $project_id,
        $merge_request_iid,
        $version_id,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/versions/:version_id and returns the decoded/deserialized response body.

set_merge_request_time_estimate

    my $tracking = $api->set_merge_request_time_estimate(
        $project_id,
        $merge_request_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/time_estimate and returns the decoded/deserialized response body.

reset_merge_request_time_estimate

    my $tracking = $api->reset_merge_request_time_estimate(
        $project_id,
        $merge_request_iid,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/reset_time_estimate and returns the decoded/deserialized response body.

add_merge_request_spent_time

    my $tracking = $api->add_merge_request_spent_time(
        $project_id,
        $merge_request_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/add_spent_time and returns the decoded/deserialized response body.

reset_merge_request_spent_time

    my $tracking = $api->reset_merge_request_spent_time(
        $project_id,
        $merge_request_iid,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/reset_spent_time and returns the decoded/deserialized response body.

merge_request_time_stats

    my $tracking = $api->merge_request_time_stats(
        $project_id,
        $merge_request_iid,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/time_stats and returns the decoded/deserialized response body.

PROJECT MILESTONE METHODS

See https://docs.gitlab.com/ce/api/milestones.html.

project_milestones

    my $milestones = $api->project_milestones(
        $project_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/milestones and returns the decoded/deserialized response body.

project_milestone

    my $milestone = $api->project_milestone(
        $project_id,
        $milestone_id,
    );

Sends a GET request to /projects/:project_id/milestones/:milestone_id and returns the decoded/deserialized response body.

create_project_milestone

    my $milestone = $api->create_project_milestone(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/milestones and returns the decoded/deserialized response body.

edit_project_milestone

    my $milestone = $api->edit_project_milestone(
        $project_id,
        $milestone_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/milestones/:milestone_id and returns the decoded/deserialized response body.

project_milestone_issues

    my $issues = $api->project_milestone_issues(
        $project_id,
        $milestone_id,
    );

Sends a GET request to /projects/:project_id/milestones/:milestone_id/issues and returns the decoded/deserialized response body.

project_milestone_merge_requests

    my $merge_requests = $api->project_milestone_merge_requests(
        $project_id,
        $milestone_id,
    );

Sends a GET request to /projects/:project_id/milestones/:milestone_id/merge_requests and returns the decoded/deserialized response body.

GROUP MILESTONE METHODS

See https://docs.gitlab.com/ce/api/group_milestones.html.

group_milestones

    my $milestones = $api->group_milestones(
        $group_id,
        \%params,
    );

Sends a GET request to /groups/:group_id/milestones and returns the decoded/deserialized response body.

group_milestone

    my $milestone = $api->group_milestone(
        $group_id,
        $milestone_id,
    );

Sends a GET request to /groups/:group_id/milestones/:milestone_id and returns the decoded/deserialized response body.

create_group_milestone

    my $milestone = $api->create_group_milestone(
        $group_id,
        \%params,
    );

Sends a POST request to /groups/:group_id/milestones and returns the decoded/deserialized response body.

edit_group_milestone

    my $milestone = $api->edit_group_milestone(
        $group_id,
        $milestone_id,
        \%params,
    );

Sends a PUT request to /groups/:group_id/milestones/:milestone_id and returns the decoded/deserialized response body.

group_milestone_issues

    my $issues = $api->group_milestone_issues(
        $group_id,
        $milestone_id,
    );

Sends a GET request to /groups/:group_id/milestones/:milestone_id/issues and returns the decoded/deserialized response body.

group_milestone_merge_requests

    my $merge_requests = $api->group_milestone_merge_requests(
        $group_id,
        $milestone_id,
    );

Sends a GET request to /groups/:group_id/milestones/:milestone_id/merge_requests and returns the decoded/deserialized response body.

NAMESPACE METHODS

See https://docs.gitlab.com/ce/api/namespaces.html.

namespaces

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

Sends a GET request to /namespaces and returns the decoded/deserialized response body.

namespace

    my $namespace = $api->namespace(
        $namespace_id,
    );

Sends a GET request to /namespaces/:namespace_id and returns the decoded/deserialized response body.

NOTE METHODS

See https://docs.gitlab.com/ce/api/notes.html.

issue_notes

    my $notes = $api->issue_notes(
        $project_id,
        $issue_iid,
        \%params,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/notes and returns the decoded/deserialized response body.

issue_note

    my $note = $api->issue_note(
        $project_id,
        $issue_iid,
        $note_id,
    );

Sends a GET request to /projects/:project_id/issues/:issue_iid/notes/:note_id and returns the decoded/deserialized response body.

create_issue_note

    my $note = $api->create_issue_note(
        $project_id,
        $issue_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/issues/:issue_iid/notes and returns the decoded/deserialized response body.

edit_issue_note

    $api->edit_issue_note(
        $project_id,
        $issue_iid,
        $note_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/issues/:issue_iid/notes/:note_id.

delete_issue_note

    $api->delete_issue_note(
        $project_id,
        $issue_iid,
        $note_id,
    );

Sends a DELETE request to /projects/:project_id/issues/:issue_iid/notes/:note_id.

snippet_notes

    my $notes = $api->snippet_notes(
        $project_id,
        $snippet_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/snippets/:snippet_id/notes and returns the decoded/deserialized response body.

snippet_note

    my $note = $api->snippet_note(
        $project_id,
        $snippet_id,
        $note_id,
    );

Sends a GET request to /projects/:project_id/snippets/:snippet_id/notes/:note_id and returns the decoded/deserialized response body.

create_snippet_note

    my $note = $api->create_snippet_note(
        $project_id,
        $snippet_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/snippets/:snippet_id/notes and returns the decoded/deserialized response body.

edit_snippet_note

    $api->edit_snippet_note(
        $project_id,
        $snippet_id,
        $note_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/snippets/:snippet_id/notes/:note_id.

delete_snippet_note

    $api->delete_snippet_note(
        $project_id,
        $snippet_id,
        $note_id,
    );

Sends a DELETE request to /projects/:project_id/snippets/:snippet_id/notes/:note_id.

merge_request_notes

    my $notes = $api->merge_request_notes(
        $project_id,
        $merge_request_iid,
        \%params,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/notes and returns the decoded/deserialized response body.

merge_request_note

    my $note = $api->merge_request_note(
        $project_id,
        $merge_request_iid,
        $note_id,
    );

Sends a GET request to /projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id and returns the decoded/deserialized response body.

create_merge_request_note

    my $note = $api->create_merge_request_note(
        $project_id,
        $merge_request_iid,
        \%params,
    );

Sends a POST request to /projects/:project_id/merge_requests/:merge_request_iid/notes and returns the decoded/deserialized response body.

edit_merge_request_note

    $api->edit_merge_request_note(
        $project_id,
        $merge_request_iid,
        $note_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id.

delete_merge_request_note

    $api->delete_merge_request_note(
        $project_id,
        $merge_request_iid,
        $note_id,
    );

Sends a DELETE request to /projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id.

NOTIFICATION SETTING METHODS

See https://docs.gitlab.com/ce/api/notification_settings.html.

global_notification_settings

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

Sends a GET request to /notification_settings and returns the decoded/deserialized response body.

set_global_notification_settings

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

Sends a PUT request to /notification_settings and returns the decoded/deserialized response body.

group_notification_settings

    my $settings = $api->group_notification_settings(
        $group_id,
    );

Sends a GET request to /groups/:group_id/notification_settings and returns the decoded/deserialized response body.

project_notification_settings

    my $settings = $api->project_notification_settings(
        $project_id,
    );

Sends a GET request to /projects/:project_id/notification_settings and returns the decoded/deserialized response body.

set_group_notification_settings

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

Sends a PUT request to /groups/:group_id/notification_settings and returns the decoded/deserialized response body.

set_project_notification_settings

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

Sends a PUT request to /projects/:project_id/notification_settings and returns the decoded/deserialized response body.

OPEN SOURCE LICENSE TEMPLATE METHODS

See https://docs.gitlab.com/ce/api/templates/licenses.html.

license_templates

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

Sends a GET request to /templates/licenses and returns the decoded/deserialized response body.

license_template

    my $template = $api->license_template(
        $template_key,
        \%params,
    );

Sends a GET request to /templates/licenses/:template_key and returns the decoded/deserialized response body.

PAGE DOMAIN METHODS

See https://docs.gitlab.com/ce/api/pages_domains.html.

global_pages_domains

    my $domains = $api->global_pages_domains();

Sends a GET request to /pages/domains and returns the decoded/deserialized response body.

pages_domains

    my $domains = $api->pages_domains(
        $project_id,
    );

Sends a GET request to /projects/:project_id/pages/domains and returns the decoded/deserialized response body.

pages_domain

    my $domain = $api->pages_domain(
        $project_id,
        $domain,
    );

Sends a GET request to /projects/:project_id/pages/domains/:domain and returns the decoded/deserialized response body.

create_pages_domain

    my $domain = $api->create_pages_domain(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/pages/domains and returns the decoded/deserialized response body.

edit_pages_domain

    my $domain = $api->edit_pages_domain(
        $project_id,
        $domain,
        \%params,
    );

Sends a PUT request to /projects/:project_id/pages/domains/:domain and returns the decoded/deserialized response body.

delete_pages_domain

    $api->delete_pages_domain(
        $project_id,
        $domain,
    );

Sends a DELETE request to /projects/:project_id/pages/domains/:domain.

PIPELINE METHODS

See https://docs.gitlab.com/ce/api/pipelines.html.

pipelines

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

Sends a GET request to /projects/:project_id/pipelines and returns the decoded/deserialized response body.

pipeline

    my $pipeline = $api->pipeline(
        $project_id,
        $pipeline_id,
    );

Sends a GET request to /projects/:project_id/pipelines/:pipeline_id and returns the decoded/deserialized response body.

create_pipeline

    my $pipeline = $api->create_pipeline(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/pipeline and returns the decoded/deserialized response body.

retry_pipeline_jobs

    my $pipeline = $api->retry_pipeline_jobs(
        $project_id,
        $pipeline_id,
    );

Sends a POST request to /projects/:project_id/pipelines/:pipeline_id/retry and returns the decoded/deserialized response body.

cancel_pipeline_jobs

    my $pipeline = $api->cancel_pipeline_jobs(
        $project_id,
        $pipeline_id,
    );

Sends a POST request to /projects/:project_id/pipelines/:pipeline_id/cancel and returns the decoded/deserialized response body.

PIPELINE TRIGGER METHODS

See https://docs.gitlab.com/ce/api/pipeline_triggers.html.

triggers

    my $triggers = $api->triggers(
        $project_id,
    );

Sends a GET request to /projects/:project_id/triggers and returns the decoded/deserialized response body.

trigger

    my $trigger = $api->trigger(
        $project_id,
        $trigger_id,
    );

Sends a GET request to /projects/:project_id/triggers/:trigger_id and returns the decoded/deserialized response body.

create_trigger

    my $trigger = $api->create_trigger(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/triggers and returns the decoded/deserialized response body.

edit_trigger

    my $trigger = $api->edit_trigger(
        $project_id,
        $trigger_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/triggers/:trigger_id and returns the decoded/deserialized response body.

take_ownership_of_trigger

    my $trigger = $api->take_ownership_of_trigger(
        $project_id,
        $trigger_id,
    );

Sends a POST request to /projects/:project_id/triggers/:trigger_id/take_ownership and returns the decoded/deserialized response body.

delete_trigger

    $api->delete_trigger(
        $project_id,
        $trigger_id,
    );

Sends a DELETE request to /projects/:project_id/triggers/:trigger_id.

PIPELINE SCHEDULE METHODS

See https://docs.gitlab.com/ce/api/pipeline_schedules.html.

pipeline_schedules

    my $schedules = $api->pipeline_schedules(
        $project_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/pipeline_schedules and returns the decoded/deserialized response body.

pipeline_schedule

    my $schedule = $api->pipeline_schedule(
        $project_id,
        $pipeline_schedule_id,
    );

Sends a GET request to /projects/:project_id/pipeline_schedules/:pipeline_schedule_id and returns the decoded/deserialized response body.

create_pipeline_schedule

    my $schedule = $api->create_pipeline_schedule(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/pipeline_schedules and returns the decoded/deserialized response body.

edit_pipeline_schedule

    my $schedule = $api->edit_pipeline_schedule(
        $project_id,
        $pipeline_schedule_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/pipeline_schedules/:pipeline_schedule_id and returns the decoded/deserialized response body.

take_ownership_of_pipeline_schedule

    my $schedule = $api->take_ownership_of_pipeline_schedule(
        $project_id,
        $pipeline_schedule_id,
    );

Sends a POST request to /projects/:project_id/pipeline_schedules/:pipeline_schedule_id/take_ownership and returns the decoded/deserialized response body.

delete_pipeline_schedule

    my $schedule = $api->delete_pipeline_schedule(
        $project_id,
        $pipeline_schedule_id,
    );

Sends a DELETE request to /projects/:project_id/pipeline_schedules/:pipeline_schedule_id and returns the decoded/deserialized response body.

create_pipeline_schedule_variable

    my $variable = $api->create_pipeline_schedule_variable(
        $project_id,
        $pipeline_schedule_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables and returns the decoded/deserialized response body.

edit_pipeline_schedule_variable

    my $variable = $api->edit_pipeline_schedule_variable(
        $project_id,
        $pipeline_schedule_id,
        $variable_key,
        \%params,
    );

Sends a PUT request to /projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables/:variable_key and returns the decoded/deserialized response body.

delete_pipeline_schedule_variable

    my $variable = $api->delete_pipeline_schedule_variable(
        $project_id,
        $pipeline_schedule_id,
        $variable_key,
    );

Sends a DELETE request to /projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables/:variable_key and returns the decoded/deserialized response body.

PROJECT METHODS

See https://docs.gitlab.com/ce/api/projects.html.

projects

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

Sends a GET request to /projects and returns the decoded/deserialized response body.

user_projects

    my $projects = $api->user_projects(
        $user_id,
        \%params,
    );

Sends a GET request to /users/:user_id/projects and returns the decoded/deserialized response body.

project

    my $project = $api->project(
        $project_id,
    );

Sends a GET request to /projects/:project_id and returns the decoded/deserialized response body.

project_users

    my $users = $api->project_users(
        $project_id,
    );

Sends a GET request to /projects/:project_id/users and returns the decoded/deserialized response body.

create_project

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

Sends a POST request to /projects and returns the decoded/deserialized response body.

create_project_for_user

    $api->create_project_for_user(
        $user_id,
        \%params,
    );

Sends a POST request to /projects/user/:user_id.

edit_project

    $api->edit_project(
        $project_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id.

fork_project

    $api->fork_project(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/fork.

project_forks

    my $forks = $api->project_forks(
        $project_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/forks and returns the decoded/deserialized response body.

start_project

    my $project = $api->start_project(
        $project_id,
    );

Sends a POST request to /projects/:project_id/star and returns the decoded/deserialized response body.

unstar_project

    my $project = $api->unstar_project(
        $project_id,
    );

Sends a POST request to /projects/:project_id/unstar and returns the decoded/deserialized response body.

archive_project

    my $project = $api->archive_project(
        $project_id,
    );

Sends a POST request to /projects/:project_id/archive and returns the decoded/deserialized response body.

unarchive_project

    my $project = $api->unarchive_project(
        $project_id,
    );

Sends a POST request to /projects/:project_id/unarchive and returns the decoded/deserialized response body.

delete_project

    $api->delete_project(
        $project_id,
    );

Sends a DELETE request to /projects/:project_id.

upload_file_to_project

    my $upload = $api->upload_file_to_project(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/uploads and returns the decoded/deserialized response body.

share_project_with_group

    $api->share_project_with_group(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/share.

unshare_project_with_group

    $api->unshare_project_with_group(
        $project_id,
        $group_id,
    );

Sends a DELETE request to /projects/:project_id/share/:group_id.

project_hooks

    my $hooks = $api->project_hooks(
        $project_id,
    );

Sends a GET request to /projects/:project_id/hooks and returns the decoded/deserialized response body.

project_hook

    my $hook = $api->project_hook(
        $project_id,
        $hook_id,
    );

Sends a GET request to /project/:project_id/hooks/:hook_id and returns the decoded/deserialized response body.

create_project_hook

    $api->create_project_hook(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/hooks.

edit_project_hook

    $api->edit_project_hook(
        $project_id,
        $hook_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/hooks/:hook_id.

delete_project_hook

    my $hook = $api->delete_project_hook(
        $project_id,
        $hook_id,
    );

Sends a DELETE request to /projects/:project_id/hooks/:hook_id and returns the decoded/deserialized response body.

set_project_fork

    $api->set_project_fork(
        $project_id,
        $from_project_id,
    );

Sends a POST request to /projects/:project_id/fork/:from_project_id.

clear_project_fork

    $api->clear_project_fork(
        $project_id,
    );

Sends a DELETE request to /projects/:project_id/fork.

start_housekeeping

    $api->start_housekeeping(
        $project_id,
    );

Sends a POST request to /projects/:project_id/housekeeping.

PROJECT ACCESS REQUEST METHODS

See https://docs.gitlab.com/ce/api/access_requests.html.

group_access_requests

    my $requests = $api->group_access_requests(
        $group_id,
    );

Sends a GET request to /groups/:group_id/access_requests and returns the decoded/deserialized response body.

project_access_requests

    my $requests = $api->project_access_requests(
        $project_id,
    );

Sends a GET request to /projects/:project_id/access_requests and returns the decoded/deserialized response body.

request_group_access

    my $request = $api->request_group_access(
        $group_id,
    );

Sends a POST request to /groups/:group_id/access_requests and returns the decoded/deserialized response body.

request_project_access

    my $request = $api->request_project_access(
        $project_id,
    );

Sends a POST request to /projects/:project_id/access_requests and returns the decoded/deserialized response body.

approve_group_access

    my $request = $api->approve_group_access(
        $group_id,
        $user_id,
    );

Sends a PUT request to /groups/:group_id/access_requests/:user_id/approve and returns the decoded/deserialized response body.

approve_project_access

    my $request = $api->approve_project_access(
        $project_id,
        $user_id,
    );

Sends a PUT request to /projects/:project_id/access_requests/:user_id/approve and returns the decoded/deserialized response body.

deny_group_access

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

Sends a DELETE request to /groups/:group_id/access_requests/:user_id.

deny_project_access

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

Sends a DELETE request to /projects/:project_id/access_requests/:user_id.

PROJECT SNIPPET METHODS

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

snippets

    my $snippets = $api->snippets(
        $project_id,
    );

Sends a GET request to /projects/:project_id/snippets and returns the decoded/deserialized response body.

snippet

    my $snippet = $api->snippet(
        $project_id,
        $snippet_id,
    );

Sends a GET request to /projects/:project_id/snippets/:snippet_id and returns the decoded/deserialized response body.

create_snippet

    $api->create_snippet(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/snippets.

edit_snippet

    $api->edit_snippet(
        $project_id,
        $snippet_id,
        \%params,
    );

Sends a PUT request to /projects/:project_id/snippets/:snippet_id.

delete_snippet

    $api->delete_snippet(
        $project_id,
        $snippet_id,
    );

Sends a DELETE request to /projects/:project_id/snippets/:snippet_id.

snippet_content

    my $content = $api->snippet_content(
        $project_id,
        $snippet_id,
    );

Sends a GET request to /projects/:project_id/snippets/:snippet_id/raw and returns the decoded/deserialized response body.

snippet_user_agent_detail

    my $user_agent = $api->snippet_user_agent_detail(
        $project_id,
        $snippet_id,
    );

Sends a GET request to /projects/:project_id/snippets/:snippet_id/user_agent_detail and returns the decoded/deserialized response body.

PROTECTED BRANCH METHODS

See https://docs.gitlab.com/ce/api/protected_branches.html.

protected_branches

    my $branches = $api->protected_branches(
        $project_id,
    );

Sends a GET request to /projects/:project_id/protected_branches and returns the decoded/deserialized response body.

protected_branch

    my $branch = $api->protected_branch(
        $project_id,
        $branch_name,
    );

Sends a GET request to /projects/:project_id/protected_branches/:branch_name and returns the decoded/deserialized response body.

protect_branch

    my $branch = $api->protect_branch(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/protected_branches and returns the decoded/deserialized response body.

unprotect_branch

    $api->unprotect_branch(
        $project_id,
        $branch_name,
    );

Sends a DELETE request to /projects/:project_id/protected_branches/:branch_name.

REPOSITORY METHODS

See https://docs.gitlab.com/ce/api/repositories.html.

tree

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

Sends a GET request to /projects/:project_id/repository/tree and returns the decoded/deserialized response body.

blob

    my $blob = $api->blob(
        $project_id,
        $sha,
    );

Sends a GET request to /projects/:project_id/repository/blobs/:sha and returns the decoded/deserialized response body.

raw_blob

    my $raw_blob = $api->raw_blob(
        $project_id,
        $sha,
    );

Sends a GET request to /projects/:project_id/repository/blobs/:sha/raw and returns the decoded/deserialized response body.

archive

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

Sends a GET request to /projects/:project_id/repository/archive and returns the decoded/deserialized response body.

compare

    my $comparison = $api->compare(
        $project_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/repository/compare and returns the decoded/deserialized response body.

contributors

    my $contributors = $api->contributors(
        $project_id,
    );

Sends a GET request to /projects/:project_id/repository/contributors and returns the decoded/deserialized response body.

FILE METHODS

See https://docs.gitlab.com/ce/api/repository_files.html.

file

    my $file = $api->file(
        $project_id,
        $file_path,
        \%params,
    );

Sends a GET request to /projects/:project_id/repository/files/:file_path and returns the decoded/deserialized response body.

raw_file

    my $file = $api->raw_file(
        $project_id,
        $file_path,
        \%params,
    );

Sends a GET request to /projects/:project_id/repository/files/:file_path/raw and returns the decoded/deserialized response body.

create_file

    $api->create_file(
        $project_id,
        $file_path,
        \%params,
    );

Sends a POST request to /projects/:project_id/repository/files/:file_path.

edit_file

    $api->edit_file(
        $project_id,
        $file_path,
        \%params,
    );

Sends a PUT request to /projects/:project_id/repository/files/:file_path.

delete_file

    $api->delete_file(
        $project_id,
        $file_path,
        \%params,
    );

Sends a DELETE request to /projects/:project_id/repository/files/:file_path.

RUNNER METHODS

See https://docs.gitlab.com/ce/api/runners.html.

runners

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

Sends a GET request to /runners and returns the decoded/deserialized response body.

all_runners

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

Sends a GET request to /runners/all and returns the decoded/deserialized response body.

runner

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

Sends a GET request to /runners/:runner_id and returns the decoded/deserialized response body.

update_runner

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

Sends a PUT request to /runners/:runner_id and returns the decoded/deserialized response body.

delete_runner

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

Sends a DELETE request to /runners/:runner_id and returns the decoded/deserialized response body.

runner_jobs

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

Sends a GET request to /runners/:runner_id/jobs and returns the decoded/deserialized response body.

project_runners

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

Sends a GET request to /projects/:project_id/runners and returns the decoded/deserialized response body.

enable_project_runner

    my $runner = $api->enable_project_runner(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/runners and returns the decoded/deserialized response body.

disable_project_runner

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

Sends a DELETE request to /projects/:project_id/runners/:runner_id and returns the decoded/deserialized response body.

SERVICE METHODS

See https://docs.gitlab.com/ce/api/services.html.

edit_project_service

    $api->edit_project_service(
        $project_id,
        $service_name,
        \%params,
    );

Sends a PUT request to /projects/:project_id/services/:service_name.

delete_project_service

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

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

SETTINGS METHODS

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

settings

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

Sends a GET request to /application/settings and returns the decoded/deserialized response body.

update_settings

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

Sends a PUT request to /application/settings and returns the decoded/deserialized response body.

SIDEKIQ METRIC METHODS

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

queue_metrics

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

Sends a GET request to /sidekiq/queue_metrics and returns the decoded/deserialized response body.

process_metrics

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

Sends a GET request to /sidekiq/process_metrics and returns the decoded/deserialized response body.

job_stats

    my $stats = $api->job_stats();

Sends a GET request to /sidekiq/job_stats and returns the decoded/deserialized response body.

compound_metrics

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

Sends a GET request to /sidekiq/compound_metrics and returns the decoded/deserialized response body.

SYSTEM HOOK METHODS

See https://docs.gitlab.com/ce/api/system_hooks.html.

hooks

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

Sends a GET request to /hooks and returns the decoded/deserialized response body.

create_hook

    $api->create_hook(
        \%params,
    );

Sends a POST request to /hooks.

test_hook

    my $hook = $api->test_hook(
        $hook_id,
    );

Sends a GET request to /hooks/:hook_id and returns the decoded/deserialized response body.

delete_hook

    $api->delete_hook(
        $hook_id,
    );

Sends a DELETE request to /hooks/:hook_id.

TAG METHODS

See https://docs.gitlab.com/ce/api/tags.html.

tags

    my $tags = $api->tags(
        $project_id,
    );

Sends a GET request to /projects/:project_id/repository/tags and returns the decoded/deserialized response body.

tag

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

Sends a GET request to /projects/:project_id/repository/tags/:tag_name and returns the decoded/deserialized response body.

create_tag

    my $tag = $api->create_tag(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/repository/tags and returns the decoded/deserialized response body.

delete_tag

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

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

create_release

    $api->create_release(
        $project_id,
        $tag_name,
        \%params,
    );

Sends a POST request to /projects/:project_id/repository/tags/:tag_name/release.

edit_release

    $api->edit_release(
        $project_id,
        $tag_name,
        \%params,
    );

Sends a PUT request to /projects/:project_id/repository/tags/:tag_name/release.

TODO METHODS

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

USER METHODS

See https://docs.gitlab.com/ce/api/users.html.

users

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

Sends a GET request to /users and returns the decoded/deserialized response body.

user

    my $user = $api->user(
        $user_id,
    );

Sends a GET request to /users/:user_id and returns the decoded/deserialized response body.

create_user

    $api->create_user(
        \%params,
    );

Sends a POST request to /users.

edit_user

    $api->edit_user(
        $user_id,
        \%params,
    );

Sends a PUT request to /users/:user_id.

delete_user

    my $user = $api->delete_user(
        $user_id,
    );

Sends a DELETE request to /users/:user_id and returns the decoded/deserialized response body.

current_user

    my $user = $api->current_user();

Sends a GET request to /user and returns the decoded/deserialized response body.

current_user_ssh_keys

    my $keys = $api->current_user_ssh_keys();

Sends a GET request to /user/keys and returns the decoded/deserialized response body.

user_ssh_keys

    my $keys = $api->user_ssh_keys(
        $user_id,
    );

Sends a GET request to /users/:user_id/keys and returns the decoded/deserialized response body.

user_ssh_key

    my $key = $api->user_ssh_key(
        $key_id,
    );

Sends a GET request to /user/keys/:key_id and returns the decoded/deserialized response body.

create_current_user_ssh_key

    $api->create_current_user_ssh_key(
        \%params,
    );

Sends a POST request to /user/keys.

create_user_ssh_key

    $api->create_user_ssh_key(
        $user_id,
        \%params,
    );

Sends a POST request to /users/:user_id/keys.

delete_current_user_ssh_key

    $api->delete_current_user_ssh_key(
        $key_id,
    );

Sends a DELETE request to /user/keys/:key_id.

delete_user_ssh_key

    $api->delete_user_ssh_key(
        $user_id,
        $key_id,
    );

Sends a DELETE request to /users/:user_id/keys/:key_id.

current_user_gpg_keys

    my $keys = $api->current_user_gpg_keys();

Sends a GET request to /user/gpg_keys and returns the decoded/deserialized response body.

current_user_gpg_key

    my $key = $api->current_user_gpg_key(
        $key_id,
    );

Sends a GET request to /user/gpg_keys/:key_id and returns the decoded/deserialized response body.

create_current_user_gpg_key

    $api->create_current_user_gpg_key(
        \%params,
    );

Sends a POST request to /user/gpg_keys.

delete_current_user_gpg_key

    $api->delete_current_user_gpg_key(
        $key_id,
    );

Sends a DELETE request to /user/gpg_keys/:key_id.

user_gpg_keys

    my $keys = $api->user_gpg_keys(
        $user_id,
    );

Sends a GET request to /users/:user_id/gpg_keys and returns the decoded/deserialized response body.

user_gpg_key

    my $key = $api->user_gpg_key(
        $user_id,
        $key_id,
    );

Sends a GET request to /users/:user_id/gpg_keys/:key_id and returns the decoded/deserialized response body.

create_user_gpg_key

    my $keys = $api->create_user_gpg_key(
        $user_id,
        \%params,
    );

Sends a POST request to /users/:user_id/gpg_keys and returns the decoded/deserialized response body.

delete_user_gpg_key

    $api->delete_user_gpg_key(
        $user_id,
        $key_id,
    );

Sends a DELETE request to /users/:user_id/gpg_keys/:key_id.

current_user_emails

    my $emails = $api->current_user_emails();

Sends a GET request to /user/emails and returns the decoded/deserialized response body.

user_emails

    my $emails = $api->user_emails(
        $user_id,
    );

Sends a GET request to /users/:user_id/emails and returns the decoded/deserialized response body.

current_user_email

    my $email = $api->current_user_email(
        $email_id,
    );

Sends a GET request to /user/emails/:email_id and returns the decoded/deserialized response body.

create_current_user_email

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

Sends a POST request to /user/emails and returns the decoded/deserialized response body.

create_user_email

    my $email = $api->create_user_email(
        $user_id,
        \%params,
    );

Sends a POST request to /users/:user_id/emails and returns the decoded/deserialized response body.

delete_current_user_email

    $api->delete_current_user_email(
        $email_id,
    );

Sends a DELETE request to /user/emails/:email_id.

delete_user_email

    $api->delete_user_email(
        $user_id,
        $email_id,
    );

Sends a DELETE request to /users/:user_id/emails/:email_id.

block_user

    $api->block_user(
        $user_id,
    );

Sends a POST request to /users/:user_id/block.

unblock_user

    $api->unblock_user(
        $user_id,
    );

Sends a POST request to /users/:user_id/unblock.

user_impersonation_tokens

    my $tokens = $api->user_impersonation_tokens(
        $user_id,
        \%params,
    );

Sends a GET request to /users/:user_id/impersonation_tokens and returns the decoded/deserialized response body.

user_impersonation_token

    my $token = $api->user_impersonation_token(
        $user_id,
        $impersonation_token_id,
    );

Sends a GET request to /users/:user_id/impersonation_tokens/:impersonation_token_id and returns the decoded/deserialized response body.

create_user_impersonation_token

    my $token = $api->create_user_impersonation_token(
        $user_id,
        \%params,
    );

Sends a POST request to /users/:user_id/impersonation_tokens and returns the decoded/deserialized response body.

delete_user_impersonation_token

    $api->delete_user_impersonation_token(
        $user_id,
        $impersonation_token_id,
    );

Sends a DELETE request to /users/:user_id/impersonation_tokens/:impersonation_token_id.

all_user_activities

    my $activities = $api->all_user_activities();

Sends a GET request to /user/activities and returns the decoded/deserialized response body.

VALIDATE CI CONFIGURATION METHODS

See https://docs.gitlab.com/ce/api/lint.html.

lint

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

Sends a POST request to /lint and returns the decoded/deserialized response body.

VERSION METHODS

See https://docs.gitlab.com/ce/api/version.html.

version

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

Sends a GET request to /version and returns the decoded/deserialized response body.

WIKI METHODS

See https://docs.gitlab.com/ce/api/wikis.html.

wiki_pages

    my $pages = $api->wiki_pages(
        $project_id,
        \%params,
    );

Sends a GET request to /projects/:project_id/wikis and returns the decoded/deserialized response body.

wiki_page

    my $pages = $api->wiki_page(
        $project_id,
        $slug,
    );

Sends a GET request to /projects/:project_id/wikis/:slug and returns the decoded/deserialized response body.

create_wiki_page

    my $page = $api->create_wiki_page(
        $project_id,
        \%params,
    );

Sends a POST request to /projects/:project_id/wikis and returns the decoded/deserialized response body.

edit_wiki_page

    my $page = $api->edit_wiki_page(
        $project_id,
        $slug,
        \%params,
    );

Sends a PUT request to /projects/:project_id/wikis/:slug and returns the decoded/deserialized response body.

delete_wiki_page

    $api->delete_wiki_page(
        $project_id,
        $slug,
    );

Sends a DELETE request to /projects/:project_id/wikis/:slug.

SEE ALSO

Net::Gitlab purports to provide an interface to the GitLab API, but it is hard to tell due to a complete lack of documentation via either POD or unit tests.

CONTRIBUTING

This module is auto-generated from a set of YAML files defining the interface of GitLab's API. If you'd like to contribute to this module then please feel free to make a fork on GitHub and submit a pull request, just make sure you edit the files in the authors/ directory instead of lib/GitLab/API/v4.pm directly.

Please see https://github.com/bluefeet/GitLab-API-v4/blob/master/author/README.pod for more information.

Alternatively, you can open a ticket.

AUTHOR

Aran Clary Deltac <bluefeet@gmail.com>

CONTRIBUTORS

  • Dotan Dimet <dotan@corky.net>

  • Nigel Gregoire <nigelgregoire@gmail.com>

  • trunov-ms <trunov.ms@gmail.com>

  • Marek R. Sotola <Marek.R.Sotola@nasa.gov>

  • José Joaquín Atria <jjatria@gmail.com>

  • Dave Webb <github@d5ve.com>

ACKNOWLEDGEMENTS

Thanks to ZipRecruiter for encouraging their employees to contribute back to the open source ecosystem. Without their dedication to quality software development this distribution would not exist.

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.