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.
Extra care has been taken to hide the token arguments behind closures. This way, if you dump your api object, your tokens won't accidentally leak into places you don't want them to.
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 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 a numeric project ID or, in many cases, maybe all cases, as a NAMESPACE_PATH/PROJECT_PATH string. 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.
retries
The number of times the request should be retried in case it fails (5XX HTTP response code). Defaults to 0 (false), meaning that a failed request will not be retried.
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.
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,
\%params,
);
Sends a GET request to projects/:project_id/issues/:issue_iid/award_emoji and returns the decoded response body.
merge_request_award_emojis
my $award_emojis = $api->merge_request_award_emojis(
$project_id,
$merge_request_iid,
\%params,
);
Sends a GET request to projects/:project_id/merge_requests/:merge_request_iid/award_emoji and returns the decoded response body.
snippet_award_emojis
my $award_emojis = $api->snippet_award_emojis(
$project_id,
$merge_request_id,
\%params,
);
Sends a GET request to projects/:project_id/merge_requests/:merge_request_id/award_emoji and returns the decoded 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 response body.
BRANCH METHODS
See https://doc.gitlab.com/ce/api/branches.html.
branches
my $branches = $api->branches(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/repository/branches and returns the decoded 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 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 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(
\%params,
);
Sends a GET request to broadcast_messages and returns the decoded response body.
broadcast_message
my $message = $api->broadcast_message(
$message_id,
);
Sends a GET request to broadcast_messages/:message_id and returns the decoded response body.
create_broadcast_message
my $message = $api->create_broadcast_message(
\%params,
);
Sends a POST request to broadcast_messages and returns the decoded 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 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,
\%params,
);
Sends a GET request to projects/:project_id/variables and returns the decoded 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 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 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 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,
\%params,
);
Sends a GET request to groups/:group_id/variables and returns the decoded 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 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 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 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 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 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 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 response body.
commit_diff
my $diff = $api->commit_diff(
$project_id,
$commit_sha,
\%params,
);
Sends a GET request to projects/:project_id/repository/commits/:commit_sha/diff and returns the decoded response body.
commit_comments
my $comments = $api->commit_comments(
$project_id,
$commit_sha,
\%params,
);
Sends a GET request to projects/:project_id/repository/commits/:commit_sha/comments and returns the decoded 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 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 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 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 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 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 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 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 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 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 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 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,
\%params,
);
Sends a GET request to projects/:project_id/deployments and returns the decoded 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 response body.
DEPLOY KEY METHODS
See https://docs.gitlab.com/ce/api/deploy_keys.html.
all_deploy_keys
my $keys = $api->all_deploy_keys(
\%params,
);
Sends a GET request to deploy_keys and returns the decoded response body.
deploy_keys
my $keys = $api->deploy_keys(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/deploy_keys and returns the decoded 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 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 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 response body.
ENVIRONMENT METHODS
See https://docs.gitlab.com/ce/api/environments.html.
environments
my $environments = $api->environments(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/environments and returns the decoded 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 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 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 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 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 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 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 response body.
set_feature
my $feature = $api->set_feature(
$name,
\%params,
);
Sends a POST request to features/:name and returns the decoded response body.
GITIGNORES TEMPLATE METHODS
See https://docs.gitlab.com/ce/api/templates/gitignores.html.
gitignores_templates
my $templates = $api->gitignores_templates(
\%params,
);
Sends a GET request to templates/gitignores and returns the decoded response body.
gitignores_template
my $template = $api->gitignores_template(
$template_key,
);
Sends a GET request to templates/gitignores/:template_key and returns the decoded 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(
\%params,
);
Sends a GET request to templates/gitlab_ci_ymls and returns the decoded 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 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 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 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 response body.
group
my $group = $api->group(
$group_id,
);
Sends a GET request to groups/:group_id and returns the decoded 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 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.
create_ldap_group_link
$api->create_ldap_group_link(
$group_id,
\%params,
);
Sends a POST request to groups/:group_id/ldap_group_links.
delete_ldap_group_link
$api->delete_ldap_group_link(
$group_id,
$cn,
);
Sends a DELETE request to groups/:group_id/ldap_group_links/:cn.
delete_ldap_provider_group_link
$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 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 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 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 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 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 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 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 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 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 response body.
issues
my $issues = $api->issues(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/issues and returns the decoded 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 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 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 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 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 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 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 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 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 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 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 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 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 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 response body.
ISSUE BOARD METHODS
See https://docs.gitlab.com/ce/api/boards.html.
project_boards
my $boards = $api->project_boards(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/boards and returns the decoded response body.
project_board_lists
my $lists = $api->project_board_lists(
$project_id,
$board_id,
\%params,
);
Sends a GET request to projects/:project_id/boards/:board_id/lists and returns the decoded 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 response body.
LABEL METHODS
See https://docs.gitlab.com/ce/api/labels.html.
labels
my $labels = $api->labels(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/labels and returns the decoded 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 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 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 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 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 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 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 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 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 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 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 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 response body.
merge_request_closes_issues
my $issues = $api->merge_request_closes_issues(
$project_id,
$merge_request_iid,
\%params,
);
Sends a GET request to projects/:project_id/merge_requests/:merge_request_iid/closes_issues and returns the decoded 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 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 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 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 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 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 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 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 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 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 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 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 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 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 response body.
project_milestone_issues
my $issues = $api->project_milestone_issues(
$project_id,
$milestone_id,
\%params,
);
Sends a GET request to projects/:project_id/milestones/:milestone_id/issues and returns the decoded response body.
project_milestone_merge_requests
my $merge_requests = $api->project_milestone_merge_requests(
$project_id,
$milestone_id,
\%params,
);
Sends a GET request to projects/:project_id/milestones/:milestone_id/merge_requests and returns the decoded 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 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 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 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 response body.
group_milestone_issues
my $issues = $api->group_milestone_issues(
$group_id,
$milestone_id,
\%params,
);
Sends a GET request to groups/:group_id/milestones/:milestone_id/issues and returns the decoded response body.
group_milestone_merge_requests
my $merge_requests = $api->group_milestone_merge_requests(
$group_id,
$milestone_id,
\%params,
);
Sends a GET request to groups/:group_id/milestones/:milestone_id/merge_requests and returns the decoded 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 response body.
namespace
my $namespace = $api->namespace(
$namespace_id,
);
Sends a GET request to namespaces/:namespace_id and returns the decoded 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 response body.
PAGE DOMAIN METHODS
See https://docs.gitlab.com/ce/api/pages_domains.html.
global_pages_domains
my $domains = $api->global_pages_domains(
\%params,
);
Sends a GET request to pages/domains and returns the decoded response body.
pages_domains
my $domains = $api->pages_domains(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/pages/domains and returns the decoded 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 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 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 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 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 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 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 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 response body.
PIPELINE TRIGGER METHODS
See https://docs.gitlab.com/ce/api/pipeline_triggers.html.
triggers
my $triggers = $api->triggers(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/triggers and returns the decoded 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 response body.
project
my $project = $api->project(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id and returns the decoded response body.
project_users
my $users = $api->project_users(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/users and returns the decoded response body.
create_project
my $project = $api->create_project(
\%params,
);
Sends a POST request to projects and returns the decoded 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 response body.
start_project
my $project = $api->start_project(
$project_id,
);
Sends a POST request to projects/:project_id/star and returns the decoded response body.
unstar_project
my $project = $api->unstar_project(
$project_id,
);
Sends a POST request to projects/:project_id/unstar and returns the decoded response body.
project_languages
my $languages = $api->project_languages(
$project_id,
);
Sends a GET request to projects/:project_id/languages and returns the decoded response body.
archive_project
my $project = $api->archive_project(
$project_id,
);
Sends a POST request to projects/:project_id/archive and returns the decoded response body.
unarchive_project
my $project = $api->unarchive_project(
$project_id,
);
Sends a POST request to projects/:project_id/unarchive and returns the decoded response body.
delete_project
$api->delete_project(
$project_id,
);
Sends a DELETE request to projects/:project_id.
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 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 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 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,
\%params,
);
Sends a GET request to groups/:group_id/access_requests and returns the decoded response body.
project_access_requests
my $requests = $api->project_access_requests(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/access_requests and returns the decoded 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 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 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 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 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,
\%params,
);
Sends a GET request to projects/:project_id/snippets and returns the decoded 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 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 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 response body.
PROTECTED BRANCH METHODS
See https://docs.gitlab.com/ce/api/protected_branches.html.
protected_branches
my $branches = $api->protected_branches(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/protected_branches and returns the decoded 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 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 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 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 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 response body.
archive
my $archive = $api->archive(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/repository/archive and returns the decoded response body.
compare
my $comparison = $api->compare(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/repository/compare and returns the decoded response body.
contributors
my $contributors = $api->contributors(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/repository/contributors and returns the decoded 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 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 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 response body.
all_runners
my $runners = $api->all_runners(
\%params,
);
Sends a GET request to runners/all and returns the decoded response body.
runner
my $runner = $api->runner(
$runner_id,
);
Sends a GET request to runners/:runner_id and returns the decoded response body.
update_runner
my $runner = $api->update_runner(
$runner_id,
\%params,
);
Sends a PUT request to runners/:runner_id and returns the decoded response body.
delete_runner
my $runner = $api->delete_runner(
$runner_id,
);
Sends a DELETE request to runners/:runner_id and returns the decoded 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 response body.
project_runners
my $runners = $api->project_runners(
$project_id,
\%params,
);
Sends a GET request to projects/:project_id/runners and returns the decoded 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 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 response body.
SERVICE METHODS
See https://docs.gitlab.com/ce/api/services.html.
project_service
my $service = $api->project_service(
$project_id,
$service_name,
);
Sends a GET request to projects/:project_id/services/:service_name and returns the decoded response body.
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 response body.
update_settings
my $settings = $api->update_settings(
\%params,
);
Sends a PUT request to application/settings and returns the decoded 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 response body.
process_metrics
my $metrics = $api->process_metrics();
Sends a GET request to sidekiq/process_metrics and returns the decoded response body.
job_stats
my $stats = $api->job_stats();
Sends a GET request to sidekiq/job_stats and returns the decoded response body.
compound_metrics
my $metrics = $api->compound_metrics();
Sends a GET request to sidekiq/compound_metrics and returns the decoded response body.
SYSTEM HOOK METHODS
See https://docs.gitlab.com/ce/api/system_hooks.html.
hooks
my $hooks = $api->hooks(
\%params,
);
Sends a GET request to hooks and returns the decoded 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 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,
\%params,
);
Sends a GET request to projects/:project_id/repository/tags and returns the decoded 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 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 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.
todos
my $todos = $api->todos(
\%params,
);
Sends a GET request to todos and returns the decoded response body.
mark_todo_done
my $todo = $api->mark_todo_done(
$todo_id,
);
Sends a POST request to todos/:todo_id/mark_as_done and returns the decoded response body.
mark_all_todos_done
$api->mark_all_todos_done();
Sends a POST request to todos/mark_as_done.
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 response body.
user
my $user = $api->user(
$user_id,
);
Sends a GET request to users/:user_id and returns the decoded 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
$api->delete_user(
$user_id,
);
Sends a DELETE request to users/:user_id.
current_user
my $user = $api->current_user();
Sends a GET request to user and returns the decoded response body.
current_user_ssh_keys
my $keys = $api->current_user_ssh_keys(
\%params,
);
Sends a GET request to user/keys and returns the decoded response body.
user_ssh_keys
my $keys = $api->user_ssh_keys(
$user_id,
\%params,
);
Sends a GET request to users/:user_id/keys and returns the decoded 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 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(
\%params,
);
Sends a GET request to user/gpg_keys and returns the decoded 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 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,
\%params,
);
Sends a GET request to users/:user_id/gpg_keys and returns the decoded 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 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 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(
\%params,
);
Sends a GET request to user/emails and returns the decoded response body.
user_emails
my $emails = $api->user_emails(
$user_id,
\%params,
);
Sends a GET request to users/:user_id/emails and returns the decoded 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 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 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 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
my $success = $api->block_user(
$user_id,
);
Sends a POST request to users/:user_id/block and returns the decoded response body.
unblock_user
my $success = $api->unblock_user(
$user_id,
);
Sends a POST request to users/:user_id/unblock and returns the decoded response body.
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 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 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 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(
\%params,
);
Sends a GET request to user/activities and returns the decoded 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 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 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 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 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 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 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>
Simon Ruderich <simon@ruderich.org>
royce55 <royce@ecs.vuw.ac.nz>
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.