GitLab::API::v4 - A complete GitLab API v4 client.
use GitLab::API::v4; my $api = GitLab::API::v4->new( url => $v4_api_url, private_token => $token, ); my $branches = $api->branches( $project_id );
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).
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:
Changes
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/
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.
The GitLab API, in rare cases, uses a hard-coded value to represent a state. To make life easier the GitLab::API::v4::Constants module exposes these states as named variables.
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.
GET
404
undef
If you'd like to catch and handle these exceptions consider using Try::Tiny.
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.
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.
$project_id
ID
NAMESPACE_PATH/PROJECT_PATH
The URL to your v4 API endpoint. Typically this will be something like https://git.example.com/api/v4.
https://git.example.com/api/v4
A GitLab API OAuth2 token. If set then "private_token" may not be set.
See https://docs.gitlab.com/ce/api/#oauth2-tokens.
A GitLab API personal token. If set then "access_token" may not be set.
See https://docs.gitlab.com/ce/api/#personal-access-tokens.
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.
0
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.
An instance of GitLab::API::v4::RESTClient (or whatever "rest_client_class" is set to). Typically you will not be setting this as it defaults to a new instance and customization should not be necessary.
The class to use when constructing the "rest_client". Defaults to GitLab::API::v4::RESTClient.
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.
page
per_page
$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/award_emoji.html.
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 content.
projects/:project_id/issues/:issue_iid/award_emoji
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 content.
projects/:project_id/merge_requests/:merge_request_iid/award_emoji
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 content.
projects/:project_id/merge_requests/:merge_request_id/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 content.
projects/:project_id/issues/:issue_iid/award_emoji/:award_id
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 content.
projects/:project_id/merge_requests/:merge_request_iid/award_emoji/:award_id
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 content.
projects/:project_id/snippets/:snippet_id/award_emoji/:award_id
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 content.
POST
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 content.
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 content.
projects/:project_id/snippets/:snippet_id/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 content.
DELETE
projects/:project_id/issues/:issue_id/award_emoji/:award_id
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 content.
projects/:project_id/merge_requests/:merge_request_id/award_emoji/:award_id
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 content.
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 content.
projects/:project_id/issues/:issue_iid/notes/:note_id/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 content.
projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id
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 content.
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 content.
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 content.
projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/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 content.
projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji/:award_id
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 content.
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 content.
See https://docs.gitlab.com/ce/api/branches.html.
my $branches = $api->branches( $project_id, \%params, );
Sends a GET request to projects/:project_id/repository/branches and returns the decoded response content.
projects/:project_id/repository/branches
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 content.
projects/:project_id/repository/branches/:branch_name
my $branch = $api->create_branch( $project_id, \%params, );
Sends a POST request to projects/:project_id/repository/branches and returns the decoded response content.
$api->delete_branch( $project_id, $branch_name, );
Sends a DELETE request to projects/:project_id/repository/branches/:branch_name.
$api->delete_merged_branches( $project_id, );
Sends a DELETE request to projects/:project_id/repository/merged_branches.
projects/:project_id/repository/merged_branches
See https://docs.gitlab.com/ce/api/broadcast_messages.html.
my $messages = $api->broadcast_messages( \%params, );
Sends a GET request to broadcast_messages and returns the decoded response content.
broadcast_messages
my $message = $api->broadcast_message( $message_id, );
Sends a GET request to broadcast_messages/:message_id and returns the decoded response content.
broadcast_messages/:message_id
my $message = $api->create_broadcast_message( \%params, );
Sends a POST request to broadcast_messages and returns the decoded response content.
my $message = $api->edit_broadcast_message( $message_id, \%params, );
Sends a PUT request to broadcast_messages/:message_id and returns the decoded response content.
PUT
$api->delete_broadcast_message( $message_id, );
Sends a DELETE request to broadcast_messages/:message_id.
See https://docs.gitlab.com/ce/api/project_level_variables.html.
my $variables = $api->project_variables( $project_id, \%params, );
Sends a GET request to projects/:project_id/variables and returns the decoded response content.
projects/:project_id/variables
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 content.
projects/:project_id/variables/:variable_key
my $variable = $api->create_project_variable( $project_id, \%params, );
Sends a POST request to projects/:project_id/variables and returns the decoded response content.
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 content.
$api->delete_project_variable( $project_id, $variable_key, );
Sends a DELETE request to projects/:project_id/variables/:variable_key.
See https://docs.gitlab.com/ce/api/group_level_variables.html.
my $variables = $api->group_variables( $group_id, \%params, );
Sends a GET request to groups/:group_id/variables and returns the decoded response content.
groups/:group_id/variables
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 content.
groups/:group_id/variables/:variable_key
my $variable = $api->create_group_variable( $group_id, \%params, );
Sends a POST request to groups/:group_id/variables and returns the decoded response content.
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 content.
$api->delete_group_variable( $group_id, $variable_key, );
Sends a DELETE request to groups/:group_id/variables/:variable_key.
See https://docs.gitlab.com/ce/api/snippets.html.
my $snippets = $api->snippets();
Sends a GET request to snippets and returns the decoded response content.
snippets
my $snippet = $api->snippet( $snippet_id, );
Sends a GET request to snippets/:snippet_id and returns the decoded response content.
snippets/:snippet_id
my $snippet = $api->create_snippet( \%params, );
Sends a POST request to snippets and returns the decoded response content.
my $snippet = $api->edit_snippet( $snippet_id, \%params, );
Sends a PUT request to snippets/:snippet_id and returns the decoded response content.
$api->delete_snippet( $snippet_id, );
Sends a DELETE request to snippets/:snippet_id.
my $snippets = $api->public_snippets( \%params, );
Sends a GET request to snippets/public and returns the decoded response content.
snippets/public
my $user_agent = $api->snippet_user_agent_detail( $snippet_id, );
Sends a GET request to snippets/:snippet_id/user_agent_detail and returns the decoded response content.
snippets/:snippet_id/user_agent_detail
See https://docs.gitlab.com/ce/api/commits.html.
my $commits = $api->commits( $project_id, \%params, );
Sends a GET request to projects/:project_id/repository/commits and returns the decoded response content.
projects/:project_id/repository/commits
my $commit = $api->create_commit( $project_id, \%params, );
Sends a POST request to projects/:project_id/repository/commits and returns the decoded response content.
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 content.
projects/:project_id/repository/commits/:commit_sha
my $refs = $api->commit_refs( $project_id, $commit_sha, \%params, );
Sends a GET request to projects/:project_id/repository/commits/:commit_sha/refs and returns the decoded response content.
projects/:project_id/repository/commits/:commit_sha/refs
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 content.
projects/:project_id/repository/commits/:commit_sha/cherry_pick
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 content.
projects/:project_id/repository/commits/:commit_sha/diff
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 content.
projects/:project_id/repository/commits/:commit_sha/comments
$api->create_commit_comment( $project_id, $commit_sha, \%params, );
Sends a POST request to projects/:project_id/repository/commits/:commit_sha/comments.
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 content.
projects/:project_id/repository/commits/:commit_sha/statuses
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 content.
projects/:project_id/statuses/:commit_sha
See https://docs.gitlab.com/ce/api/container_registry.html.
my $registry_repositories = $api->registry_repositories_in_project( $project_id, \%params, );
Sends a GET request to projects/:project_id/registry/repositories and returns the decoded response content.
projects/:project_id/registry/repositories
my $registry_repositories = $api->registry_repositories_in_group( $group_id, \%params, );
Sends a GET request to groups/:group_id/registry/repositories and returns the decoded response content.
groups/:group_id/registry/repositories
$api->delete_registry_repository( $project_id, $repository_id, );
Sends a DELETE request to projects/:project_id/registry/repositories/:repository_id.
projects/:project_id/registry/repositories/:repository_id
my $tags = $api->registry_repository_tags( $project_id, $repository_id, );
Sends a GET request to projects/:project_id/registry/repositories/:repository_id/tags and returns the decoded response content.
projects/:project_id/registry/repositories/:repository_id/tags
my $tag = $api->registry_repository_tag( $project_id, $repository_id, $tag_name, );
Sends a GET request to projects/:project_id/registry/repositories/:repository_id/tags/:tag_name and returns the decoded response content.
projects/:project_id/registry/repositories/:repository_id/tags/:tag_name
$api->delete_registry_repository_tag( $project_id, $repository_id, $tag_name, );
Sends a DELETE request to projects/:project_id/registry/repositories/:repository_id/tags/:tag_name.
$api->bulk_delete_registry_repository_tags( $project_id, $repository_id, \%params, );
Sends a DELETE request to projects/:project_id/registry/repositories/:repository_id/tags.
See https://docs.gitlab.com/ce/api/custom_attributes.html.
my $attributes = $api->custom_user_attributes( $user_id, );
Sends a GET request to users/:user_id/custom_attributes and returns the decoded response content.
users/:user_id/custom_attributes
my $attributes = $api->custom_group_attributes( $group_id, );
Sends a GET request to groups/:group_id/custom_attributes and returns the decoded response content.
groups/:group_id/custom_attributes
my $attributes = $api->custom_project_attributes( $project_id, );
Sends a GET request to projects/:project_id/custom_attributes and returns the decoded response content.
projects/:project_id/custom_attributes
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 content.
users/:user_id/custom_attributes/:attribute_key
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 content.
groups/:group_id/custom_attributes/:attribute_key
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 content.
projects/:project_id/custom_attributes/:attribute_key
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 content.
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 content.
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 content.
$api->delete_custom_user_attribute( $user_id, $attribute_key, );
Sends a DELETE request to users/:user_id/custom_attributes/:attribute_key.
$api->delete_custom_group_attribute( $group_id, $attribute_key, );
Sends a DELETE request to groups/:group_id/custom_attributes/:attribute_key.
$api->delete_custom_project_attribute( $project_id, $attribute_key, );
Sends a DELETE request to projects/:project_id/custom_attributes/:attribute_key.
See https://docs.gitlab.com/ce/api/deployments.html.
my $deployments = $api->deployments( $project_id, \%params, );
Sends a GET request to projects/:project_id/deployments and returns the decoded response content.
projects/:project_id/deployments
my $deployment = $api->deployment( $project_id, $deployment_id, );
Sends a GET request to projects/:project_id/deployments/:deployment_id and returns the decoded response content.
projects/:project_id/deployments/:deployment_id
See https://docs.gitlab.com/ce/api/deploy_keys.html.
my $keys = $api->all_deploy_keys( \%params, );
Sends a GET request to deploy_keys and returns the decoded response content.
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 content.
projects/:project_id/deploy_keys
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 content.
projects/:project_id/deploy_keys/:key_id
my $key = $api->create_deploy_key( $project_id, \%params, );
Sends a POST request to projects/:project_id/deploy_keys and returns the decoded response content.
$api->delete_deploy_key( $project_id, $key_id, );
Sends a DELETE request to projects/:project_id/deploy_keys/:key_id.
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 content.
projects/:project_id/deploy_keys/:key_id/enable
See https://docs.gitlab.com/ce/api/environments.html.
my $environments = $api->environments( $project_id, \%params, );
Sends a GET request to projects/:project_id/environments and returns the decoded response content.
projects/:project_id/environments
my $environment = $api->create_environment( $project_id, \%params, );
Sends a POST request to projects/:project_id/environments and returns the decoded response content.
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 content.
projects/:project_id/environments/:environments_id
$api->delete_environment( $project_id, $environment_id, );
Sends a DELETE request to projects/:project_id/environments/:environment_id.
projects/:project_id/environments/:environment_id
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 content.
projects/:project_id/environments/:environment_id/stop
See https://docs.gitlab.com/ce/api/events.html.
my $events = $api->all_events( \%params, );
Sends a GET request to events and returns the decoded response content.
events
my $events = $api->user_events( $user_id, \%params, );
Sends a GET request to users/:user_id/events and returns the decoded response content.
users/:user_id/events
my $events = $api->project_events( $project_id, \%params, );
Sends a GET request to projects/:project_id/events and returns the decoded response content.
projects/:project_id/events
See https://docs.gitlab.com/ce/api/features.html.
my $features = $api->features();
Sends a GET request to features and returns the decoded response content.
features
my $feature = $api->set_feature( $name, \%params, );
Sends a POST request to features/:name and returns the decoded response content.
features/:name
See https://docs.gitlab.com/ce/api/templates/gitignores.html.
my $templates = $api->gitignores_templates( \%params, );
Sends a GET request to templates/gitignores and returns the decoded response content.
templates/gitignores
my $template = $api->gitignores_template( $template_key, );
Sends a GET request to templates/gitignores/:template_key and returns the decoded response content.
templates/gitignores/:template_key
See https://docs.gitlab.com/ce/api/templates/gitlab_ci_ymls.html.
my $templates = $api->gitlab_ci_ymls_templates( \%params, );
Sends a GET request to templates/gitlab_ci_ymls and returns the decoded response content.
templates/gitlab_ci_ymls
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 content.
templates/gitlab_ci_ymls/:template_key
See https://docs.gitlab.com/ce/api/groups.html.
my $groups = $api->groups( \%params, );
Sends a GET request to groups and returns the decoded response content.
groups
my $subgroups = $api->group_subgroups( $group_id, \%params, );
Sends a GET request to groups/:group_id/subgroups and returns the decoded response content.
groups/:group_id/subgroups
my $projects = $api->group_projects( $group_id, \%params, );
Sends a GET request to groups/:group_id/projects and returns the decoded response content.
groups/:group_id/projects
my $group = $api->group( $group_id, \%params, );
Sends a GET request to groups/:group_id and returns the decoded response content.
groups/:group_id
$api->create_group( \%params, );
Sends a POST request to groups.
$api->transfer_project_to_group( $group_id, $project_id, );
Sends a POST request to groups/:group_id/projects/:project_id.
groups/:group_id/projects/:project_id
my $group = $api->edit_group( $group_id, \%params, );
Sends a PUT request to groups/:group_id and returns the decoded response content.
$api->delete_group( $group_id, );
Sends a DELETE request to groups/:group_id.
$api->sync_group_with_ldap( $group_id, );
Sends a POST request to groups/:group_id/ldap_sync.
groups/:group_id/ldap_sync
$api->create_ldap_group_link( $group_id, \%params, );
Sends a POST request to groups/:group_id/ldap_group_links.
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.
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.
groups/:group_id/ldap_group_links/:provider/:cn
$api->share_group_with_group( $group_id, \%params, );
Sends a POST request to groups/:group_id/share.
groups/:group_id/share
$api->unshare_group_with_group( $group_id, $shared_with_group_id, );
Sends a DELETE request to groups/:group_id/share/:shared_with_group_id.
groups/:group_id/share/:shared_with_group_id
See https://docs.gitlab.com/ce/api/access_requests.html.
my $requests = $api->group_access_requests( $group_id, \%params, );
Sends a GET request to groups/:group_id/access_requests and returns the decoded response content.
groups/:group_id/access_requests
my $request = $api->request_group_access( $group_id, );
Sends a POST request to groups/:group_id/access_requests and returns the decoded response content.
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 content.
groups/:group_id/access_requests/:user_id/approve
$api->deny_group_access( $group_id, $user_id, );
Sends a DELETE request to groups/:group_id/access_requests/:user_id.
groups/:group_id/access_requests/:user_id
See https://docs.gitlab.com/ce/api/group_badges.html.
my $badges = $api->group_badges( $group_id, );
Sends a GET request to groups/:group_id/badges and returns the decoded response content.
groups/:group_id/badges
my $badge = $api->group_badge( $group_id, $badge_id, );
Sends a GET request to groups/:group_id/badges/:badge_id and returns the decoded response content.
groups/:group_id/badges/:badge_id
my $badge = $api->create_group_badge( $group_id, \%params, );
Sends a POST request to groups/:group_id/badges and returns the decoded response content.
my $badge = $api->edit_group_badge( $group_id, $badge_id, \%params, );
Sends a PUT request to groups/:group_id/badges/:badge_id and returns the decoded response content.
$api->delete_group_badge( $group_id, $badge_id, );
Sends a DELETE request to groups/:group_id/badges/:badge_id.
my $preview = $api->preview_group_badge( $group_id, \%params, );
Sends a GET request to groups/:group_id/badges/render and returns the decoded response content.
groups/:group_id/badges/render
See https://docs.gitlab.com/ce/api/members.html.
my $members = $api->group_members( $group_id, \%params, );
Sends a GET request to groups/:group_id/members and returns the decoded response content.
groups/:group_id/members
my $members = $api->all_group_members( $group_id, \%params, );
Sends a GET request to groups/:group_id/members/all and returns the decoded response content.
groups/:group_id/members/all
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 content.
groups/:project_id/members/:user_id
my $member = $api->add_group_member( $group_id, \%params, );
Sends a POST request to groups/:group_id/members and returns the decoded response content.
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 content.
groups/:group_id/members/:user_id
$api->remove_group_member( $group_id, $user_id, );
Sends a DELETE request to groups/:group_id/members/:user_id.
See https://docs.gitlab.com/ce/api/issues.html.
my $issues = $api->global_issues( \%params, );
Sends a GET request to issues and returns the decoded response content.
issues
my $issues = $api->group_issues( $group_id, \%params, );
Sends a GET request to groups/:group_id/issues and returns the decoded response content.
groups/:group_id/issues
my $issues = $api->issues( $project_id, \%params, );
Sends a GET request to projects/:project_id/issues and returns the decoded response content.
projects/:project_id/issues
my $issue = $api->issue( $project_id, $issue_iid, );
Sends a GET request to projects/:project_id/issues/:issue_iid and returns the decoded response content.
projects/:project_id/issues/:issue_iid
my $issue = $api->create_issue( $project_id, \%params, );
Sends a POST request to projects/:project_id/issues and returns the decoded response content.
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 content.
$api->delete_issue( $project_id, $issue_iid, );
Sends a DELETE request to projects/:project_id/issues/:issue_iid.
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 content.
projects/:project_id/issues/:issue_iid/move
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 content.
projects/:project_id/issues/:issue_iid/subscribe
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 content.
projects/:project_id/issues/:issue_iid/unsubscribe
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 content.
projects/:project_id/issues/:issue_iid/todo
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 content.
projects/:project_id/issues/:issue_iid/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 content.
projects/:project_id/issues/:issue_iid/reset_time_estimate
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 content.
projects/:project_id/issues/:issue_iid/add_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 content.
projects/:project_id/issues/:issue_iid/reset_spent_time
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 content.
projects/:project_id/issues/:issue_iid/time_stats
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 content.
projects/:project_id/issues/:issue_iid/closed_by
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 content.
projects/:project_id/issues/:issue_iid/user_agent_detail
See https://docs.gitlab.com/ce/api/boards.html.
my $boards = $api->project_boards( $project_id, \%params, );
Sends a GET request to projects/:project_id/boards and returns the decoded response content.
projects/:project_id/boards
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 content.
projects/:project_id/boards/:board_id/lists
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 content.
projects/:project_id/boards/:board_id/lists/:list_id
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 content.
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 content.
$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.
See https://docs.gitlab.com/ce/api/group_boards.html.
my $boards = $api->group_boards( $group_id, );
Sends a GET request to groups/:group_id/boards and returns the decoded response content.
groups/:group_id/boards
my $board = $api->group_board( $group_id, $board_id, );
Sends a GET request to groups/:group_id/boards/:board_id and returns the decoded response content.
groups/:group_id/boards/:board_id
my $lists = $api->group_board_lists( $group_id, $board_id, );
Sends a GET request to groups/:group_id/boards/:board_id/lists and returns the decoded response content.
groups/:group_id/boards/:board_id/lists
my $list = $api->group_board_list( $group_id, $board_id, $list_id, );
Sends a GET request to groups/:group_id/boards/:board_id/lists/:list_id and returns the decoded response content.
groups/:group_id/boards/:board_id/lists/:list_id
my $list = $api->create_group_board_list( $group_id, $board_id, \%params, );
Sends a POST request to groups/:group_id/boards/:board_id/lists and returns the decoded response content.
my $list = $api->edit_group_board_list( $group_id, $board_id, $list_id, \%params, );
Sends a PUT request to groups/:group_id/boards/:board_id/lists/:list_id and returns the decoded response content.
$api->delete_group_board_list( $group_id, $board_id, $list_id, );
Sends a DELETE request to groups/:group_id/boards/:board_id/lists/:list_id.
See https://docs.gitlab.com/ce/api/jobs.html.
my $jobs = $api->jobs( $project_id, \%params, );
Sends a GET request to projects/:project_id/jobs and returns the decoded response content.
projects/:project_id/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 content.
projects/:project_id/pipelines/:pipeline_id/jobs
my $job = $api->job( $project_id, $job_id, );
Sends a GET request to projects/:project_id/jobs/:job_id and returns the decoded response content.
projects/:project_id/jobs/:job_id
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 content.
projects/:project_id/jobs/:job_id/artifacts
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 content.
projects/:project_id/jobs/artifacts/:ref_name/download
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 content.
projects/:project_id/jobs/:job_id/artifacts/:artifact_path
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 content.
projects/:project_id/jobs/:job_id/trace
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 content.
projects/:project_id/jobs/:job_id/cancel
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 content.
projects/:project_id/jobs/:job_id/retry
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 content.
projects/:project_id/jobs/:job_id/erase
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 content.
projects/:project_id/jobs/:job_id/artifacts/keep
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 content.
projects/:project_id/jobs/:job_id/play
See https://docs.gitlab.com/ce/api/keys.html.
my $key = $api->key( $key_id, );
Sends a GET request to keys/:key_id and returns the decoded response content.
keys/:key_id
See https://docs.gitlab.com/ce/api/labels.html.
my $labels = $api->labels( $project_id, \%params, );
Sends a GET request to projects/:project_id/labels and returns the decoded response content.
projects/:project_id/labels
my $label = $api->create_label( $project_id, \%params, );
Sends a POST request to projects/:project_id/labels and returns the decoded response content.
$api->delete_label( $project_id, \%params, );
Sends a DELETE request to projects/:project_id/labels.
my $label = $api->edit_label( $project_id, \%params, );
Sends a PUT request to projects/:project_id/labels and returns the decoded response content.
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 content.
projects/:project_id/labels/:label_id/subscribe
$api->unsubscribe_from_label( $project_id, $label_id, );
Sends a POST request to projects/:project_id/labels/:label_id/unsubscribe.
projects/:project_id/labels/:label_id/unsubscribe
See https://docs.gitlab.com/ce/api/markdown.html.
my $html = $api->markdown( \%params, );
Sends a POST request to markdown and returns the decoded response content.
markdown
See https://docs.gitlab.com/ce/api/merge_requests.html.
my $merge_requests = $api->global_merge_requests( \%params, );
Sends a GET request to merge_requests and returns the decoded response content.
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 content.
projects/:project_id/merge_requests
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 content.
projects/:project_id/merge_requests/:merge_request_iid
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 content.
projects/:project_id/merge_requests/:merge_request_iid/commits
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 content.
projects/:project_id/merge_requests/:merge_request_iid/changes
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 content.
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 content.
$api->delete_merge_request( $project_id, $merge_request_iid, );
Sends a DELETE request to projects/:project_id/merge_requests/:merge_request_iid.
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 content.
projects/:project_id/merge_requests/:merge_request_iid/merge
my $merge_request = $api->approve_merge_request( $project_id, $merge_request_iid, \%params, );
Sends a POST request to projects/:project_id/merge_requests/:merge_request_iid/approve and returns the decoded response content.
projects/:project_id/merge_requests/:merge_request_iid/approve
my $merge_request = $api->unapprove_merge_request( $project_id, $merge_request_iid, \%params, );
Sends a POST request to projects/:project_id/merge_requests/:merge_request_iid/unapprove and returns the decoded response content.
projects/:project_id/merge_requests/:merge_request_iid/unapprove
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 content.
projects/:project_id/merge_requests/:merge_request_iid/cancel_merge_when_pipeline_succeeds
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 content.
projects/:project_id/merge_requests/:merge_request_iid/closes_issues
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 content.
projects/:project_id/merge_requests/:merge_request_iid/subscribe
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 content.
projects/:project_id/merge_requests/:merge_request_iid/unsubscribe
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 content.
projects/:project_id/merge_requests/:merge_request_iid/todo
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 content.
projects/:project_id/merge_requests/:merge_request_iid/versions
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 content.
projects/:project_id/merge_requests/:merge_request_iid/versions/:version_id
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 content.
projects/:project_id/merge_requests/:merge_request_iid/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 content.
projects/:project_id/merge_requests/:merge_request_iid/reset_time_estimate
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 content.
projects/:project_id/merge_requests/:merge_request_iid/add_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 content.
projects/:project_id/merge_requests/:merge_request_iid/reset_spent_time
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 content.
projects/:project_id/merge_requests/:merge_request_iid/time_stats
See https://docs.gitlab.com/ce/api/milestones.html.
my $milestones = $api->project_milestones( $project_id, \%params, );
Sends a GET request to projects/:project_id/milestones and returns the decoded response content.
projects/:project_id/milestones
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 content.
projects/:project_id/milestones/:milestone_id
my $milestone = $api->create_project_milestone( $project_id, \%params, );
Sends a POST request to projects/:project_id/milestones and returns the decoded response content.
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 content.
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 content.
projects/:project_id/milestones/:milestone_id/issues
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 content.
projects/:project_id/milestones/:milestone_id/merge_requests
See https://docs.gitlab.com/ce/api/group_milestones.html.
my $milestones = $api->group_milestones( $group_id, \%params, );
Sends a GET request to groups/:group_id/milestones and returns the decoded response content.
groups/:group_id/milestones
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 content.
groups/:group_id/milestones/:milestone_id
my $milestone = $api->create_group_milestone( $group_id, \%params, );
Sends a POST request to groups/:group_id/milestones and returns the decoded response content.
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 content.
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 content.
groups/:group_id/milestones/:milestone_id/issues
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 content.
groups/:group_id/milestones/:milestone_id/merge_requests
See https://docs.gitlab.com/ce/api/namespaces.html.
my $namespaces = $api->namespaces( \%params, );
Sends a GET request to namespaces and returns the decoded response content.
namespaces
my $namespace = $api->namespace( $namespace_id, );
Sends a GET request to namespaces/:namespace_id and returns the decoded response content.
namespaces/:namespace_id
See https://docs.gitlab.com/ce/api/notes.html.
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 content.
projects/:project_id/issues/:issue_iid/notes
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 content.
projects/:project_id/issues/:issue_iid/notes/:note_id
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 content.
$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.
$api->delete_issue_note( $project_id, $issue_iid, $note_id, );
Sends a DELETE request to projects/:project_id/issues/:issue_iid/notes/:note_id.
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 content.
projects/:project_id/snippets/:snippet_id/notes
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 content.
projects/:project_id/snippets/:snippet_id/notes/:note_id
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 content.
$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.
$api->delete_snippet_note( $project_id, $snippet_id, $note_id, );
Sends a DELETE request to projects/:project_id/snippets/:snippet_id/notes/:note_id.
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 content.
projects/:project_id/merge_requests/:merge_request_iid/notes
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 content.
projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id
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 content.
$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.
$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.
See https://docs.gitlab.com/ce/api/discussions.html.
my $discussions = $api->issue_discussions( $project_id, $issue_iid, \%params, );
Sends a GET request to projects/:project_id/issues/:issue_iid/discussions and returns the decoded response content.
projects/:project_id/issues/:issue_iid/discussions
my $discussion = $api->issue_discussion( $project_id, $issue_iid, $discussion_id, );
Sends a GET request to projects/:project_id/issues/:issue_iid/discussions/:discussion_id and returns the decoded response content.
projects/:project_id/issues/:issue_iid/discussions/:discussion_id
my $discussion = $api->create_issue_discussion( $project_id, $issue_iid, \%params, );
Sends a POST request to projects/:project_id/issues/:issue_iid/discussions and returns the decoded response content.
$api->create_issue_discussion_note( $project_id, $issue_iid, $discussion_id, \%params, );
Sends a POST request to projects/:project_id/issues/:issue_iid/discussions/:discussion_id/notes.
projects/:project_id/issues/:issue_iid/discussions/:discussion_id/notes
$api->edit_issue_discussion_note( $project_id, $issue_iid, $discussion_id, $note_id, \%params, );
Sends a PUT request to projects/:project_id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id.
projects/:project_id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id
$api->delete_issue_discussion_note( $project_id, $issue_iid, $discussion_id, $note_id, );
Sends a DELETE request to projects/:project_id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id.
my $discussions = $api->project_snippet_discussions( $project_id, $snippet_id, \%params, );
Sends a GET request to projects/:project_id/snippets/:snippet_id/discussions and returns the decoded response content.
projects/:project_id/snippets/:snippet_id/discussions
my $discussion = $api->project_snippet_discussion( $project_id, $snippet_id, $discussion_id, );
Sends a GET request to projects/:project_id/snippets/:snippet_id/discussions/:discussion_id and returns the decoded response content.
projects/:project_id/snippets/:snippet_id/discussions/:discussion_id
my $discussion = $api->create_project_snippet_discussion( $project_id, $snippet_id, \%params, );
Sends a POST request to projects/:project_id/snippets/:snippet_id/discussions and returns the decoded response content.
$api->create_project_snippet_discussion_note( $project_id, $snippet_id, $discussion_id, \%params, );
Sends a POST request to projects/:project_id/snippets/:snippet_id/discussions/:discussion_id/notes.
projects/:project_id/snippets/:snippet_id/discussions/:discussion_id/notes
$api->edit_project_snippet_discussion_note( $project_id, $snippet_id, $discussion_id, $note_id, \%params, );
Sends a PUT request to projects/:project_id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id.
projects/:project_id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id
$api->delete_project_snippet_discussion_note( $project_id, $snippet_id, $discussion_id, $note_id, );
Sends a DELETE request to projects/:project_id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id.
my $discussions = $api->merge_request_discussions( $project_id, $merge_request_iid, \%params, );
Sends a GET request to projects/:project_id/merge_requests/:merge_request_iid/discussions and returns the decoded response content.
projects/:project_id/merge_requests/:merge_request_iid/discussions
my $discussion = $api->merge_request_discussion( $project_id, $merge_request_iid, $discussion_id, );
Sends a GET request to projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id and returns the decoded response content.
projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id
my $discussion = $api->create_merge_request_discussion( $project_id, $merge_request_iid, \%params, );
Sends a POST request to projects/:project_id/merge_requests/:merge_request_iid/discussions and returns the decoded response content.
$api->resolve_merge_request_discussion( $project_id, $merge_request_iid, $discussion_id, \%params, );
Sends a PUT request to projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id.
$api->create_merge_request_discussion_note( $project_id, $merge_request_iid, $discussion_id, \%params, );
Sends a POST request to projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes.
projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes
$api->edit_merge_request_discussion_note( $project_id, $merge_request_iid, $discussion_id, $note_id, \%params, );
Sends a PUT request to projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id.
projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id
$api->delete_merge_request_discussion_note( $project_id, $merge_request_iid, $discussion_id, $note_id, );
Sends a DELETE request to projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id.
my $discussions = $api->commit_discussions( $project_id, $commit_id, \%params, );
Sends a GET request to projects/:project_id/commits/:commit_id/discussions and returns the decoded response content.
projects/:project_id/commits/:commit_id/discussions
my $discussion = $api->commit_discussion( $project_id, $commit_id, $discussion_id, );
Sends a GET request to projects/:project_id/commits/:commit_id/discussions/:discussion_id and returns the decoded response content.
projects/:project_id/commits/:commit_id/discussions/:discussion_id
my $discussion = $api->create_commit_discussion( $project_id, $commit_id, \%params, );
Sends a POST request to projects/:project_id/commits/:commit_id/discussions and returns the decoded response content.
$api->create_commit_discussion_note( $project_id, $commit_id, $discussion_id, \%params, );
Sends a POST request to projects/:project_id/commits/:commit_id/discussions/:discussion_id/notes.
projects/:project_id/commits/:commit_id/discussions/:discussion_id/notes
$api->edit_commit_discussion_note( $project_id, $commit_id, $discussion_id, $note_id, \%params, );
Sends a PUT request to projects/:project_id/commits/:commit_id/discussions/:discussion_id/notes/:note_id.
projects/:project_id/commits/:commit_id/discussions/:discussion_id/notes/:note_id
$api->delete_commit_discussion_note( $project_id, $commit_id, $discussion_id, $note_id, );
Sends a DELETE request to projects/:project_id/commits/:commit_id/discussions/:discussion_id/notes/:note_id.
See https://docs.gitlab.com/ce/api/resource_label_events.html.
my $events = $api->issue_resource_label_events( $project_id, $issue_iid, );
Sends a GET request to projects/:project_id/issues/:issue_iid/resource_label_events and returns the decoded response content.
projects/:project_id/issues/:issue_iid/resource_label_events
my $event = $api->issue_resource_label_event( $project_id, $issue_iid, $resource_label_event_id, );
Sends a GET request to projects/:project_id/issues/:issue_iid/resource_label_events/:resource_label_event_id and returns the decoded response content.
projects/:project_id/issues/:issue_iid/resource_label_events/:resource_label_event_id
my $events = $api->merge_request_resource_label_events( $project_id, $merge_request_iid, );
Sends a GET request to projects/:project_id/merge_requests/:merge_request_iid/resource_label_events and returns the decoded response content.
projects/:project_id/merge_requests/:merge_request_iid/resource_label_events
my $event = $api->merge_request_resource_label_event( $project_id, $merge_request_iid, $resource_label_event_id, );
Sends a GET request to projects/:project_id/merge_requests/:merge_request_iid/resource_label_events/:resource_label_event_id and returns the decoded response content.
projects/:project_id/merge_requests/:merge_request_iid/resource_label_events/:resource_label_event_id
See https://docs.gitlab.com/ce/api/notification_settings.html.
my $settings = $api->global_notification_settings();
Sends a GET request to notification_settings and returns the decoded response content.
notification_settings
my $settings = $api->set_global_notification_settings( \%params, );
Sends a PUT request to notification_settings and returns the decoded response content.
my $settings = $api->group_notification_settings( $group_id, );
Sends a GET request to groups/:group_id/notification_settings and returns the decoded response content.
groups/:group_id/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 content.
projects/:project_id/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 content.
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 content.
See https://docs.gitlab.com/ce/api/templates/licenses.html.
my $templates = $api->license_templates( \%params, );
Sends a GET request to templates/licenses and returns the decoded response content.
templates/licenses
my $template = $api->license_template( $template_key, \%params, );
Sends a GET request to templates/licenses/:template_key and returns the decoded response content.
templates/licenses/:template_key
See https://docs.gitlab.com/ce/api/pages_domains.html.
my $domains = $api->global_pages_domains( \%params, );
Sends a GET request to pages/domains and returns the decoded response content.
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 content.
projects/:project_id/pages/domains
my $domain = $api->pages_domain( $project_id, $domain, );
Sends a GET request to projects/:project_id/pages/domains/:domain and returns the decoded response content.
projects/:project_id/pages/domains/: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 content.
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 content.
$api->delete_pages_domain( $project_id, $domain, );
Sends a DELETE request to projects/:project_id/pages/domains/:domain.
See https://docs.gitlab.com/ce/api/pipelines.html.
my $pipelines = $api->pipelines( $project_id, \%params, );
Sends a GET request to projects/:project_id/pipelines and returns the decoded response content.
projects/:project_id/pipelines
my $pipeline = $api->pipeline( $project_id, $pipeline_id, );
Sends a GET request to projects/:project_id/pipelines/:pipeline_id and returns the decoded response content.
projects/:project_id/pipelines/:pipeline_id
my $pipeline = $api->create_pipeline( $project_id, \%params, );
Sends a POST request to projects/:project_id/pipeline and returns the decoded response content.
projects/:project_id/pipeline
Git ref (branch or tag) name must be specified in the ref field of the %params hash. It's also possible to pass variables to a pipeline in the variables field like in the following example:
ref
%params
variables
my $pipeline = $api->create_pipeline( $project_id, { 'ref' => 'master', variables => [ { 'key' => 'VARIABLE1', 'value' => 'VALUE1' }, { 'key' => 'VARIABLE2', 'value' => 'VALUE2' }, ], }, );
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 content.
projects/:project_id/pipelines/:pipeline_id/retry
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 content.
projects/:project_id/pipelines/:pipeline_id/cancel
$api->delete_pipeline( $project_id, $pipeline_id, );
Sends a DELETE request to projects/:project_id/pipelines/:pipeline_id.
See https://docs.gitlab.com/ce/api/pipeline_triggers.html.
my $triggers = $api->triggers( $project_id, \%params, );
Sends a GET request to projects/:project_id/triggers and returns the decoded response content.
projects/:project_id/triggers
my $trigger = $api->trigger( $project_id, $trigger_id, );
Sends a GET request to projects/:project_id/triggers/:trigger_id and returns the decoded response content.
projects/:project_id/triggers/:trigger_id
my $trigger = $api->create_trigger( $project_id, \%params, );
Sends a POST request to projects/:project_id/triggers and returns the decoded response content.
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 content.
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 content.
projects/:project_id/triggers/:trigger_id/take_ownership
$api->delete_trigger( $project_id, $trigger_id, );
Sends a DELETE request to projects/:project_id/triggers/:trigger_id.
my $pipeline = $api->trigger_pipeline( $project_id, \%params, );
Sends a POST request to projects/:project_id/trigger/pipeline and returns the decoded response content.
projects/:project_id/trigger/pipeline
The API authentication token ("private_token" or "access_token" parameters in a constructor) is not needed when using this method, however You must pass trigger token (generated at the trigger creation) as token field and git ref name as ref field in the %params hash. You can also pass variables to be set in a pipeline in the variables field. Example:
token
my $pipeline = $api->trigger_pipeline( $project_id, { token => 'd69dba9162ab6ac72fa0993496286ada', 'ref' => 'master', variables => { variable1 => 'value1', variable2 => 'value2', }, }, );
Read more at https://docs.gitlab.com/ce/ci/triggers/#triggering-a-pipeline.
See https://docs.gitlab.com/ce/api/pipeline_schedules.html.
my $schedules = $api->pipeline_schedules( $project_id, \%params, );
Sends a GET request to projects/:project_id/pipeline_schedules and returns the decoded response content.
projects/:project_id/pipeline_schedules
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 content.
projects/:project_id/pipeline_schedules/:pipeline_schedule_id
my $schedule = $api->create_pipeline_schedule( $project_id, \%params, );
Sends a POST request to projects/:project_id/pipeline_schedules and returns the decoded response content.
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 content.
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 content.
projects/:project_id/pipeline_schedules/:pipeline_schedule_id/take_ownership
my $variable = $api->run_pipeline_schedule( $project_id, $pipeline_schedule_id, );
Sends a POST request to projects/:project_id/pipeline_schedules/:pipeline_schedule_id/play and returns the decoded response content.
projects/:project_id/pipeline_schedules/:pipeline_schedule_id/play
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 content.
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 content.
projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables
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 content.
projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables/:variable_key
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 content.
See https://docs.gitlab.com/ce/api/projects.html.
my $projects = $api->projects( \%params, );
Sends a GET request to projects and returns the decoded response content.
projects
my $projects = $api->user_projects( $user_id, \%params, );
Sends a GET request to users/:user_id/projects and returns the decoded response content.
users/:user_id/projects
my $project = $api->project( $project_id, \%params, );
Sends a GET request to projects/:project_id and returns the decoded response content.
projects/:project_id
my $users = $api->project_users( $project_id, \%params, );
Sends a GET request to projects/:project_id/users and returns the decoded response content.
projects/:project_id/users
my $project = $api->create_project( \%params, );
Sends a POST request to projects and returns the decoded response content.
$api->create_project_for_user( $user_id, \%params, );
Sends a POST request to projects/user/:user_id.
projects/user/:user_id
$api->edit_project( $project_id, \%params, );
Sends a PUT request to projects/:project_id.
$api->fork_project( $project_id, \%params, );
Sends a POST request to projects/:project_id/fork.
projects/:project_id/fork
my $forks = $api->project_forks( $project_id, \%params, );
Sends a GET request to projects/:project_id/forks and returns the decoded response content.
projects/:project_id/forks
my $project = $api->start_project( $project_id, );
Sends a POST request to projects/:project_id/star and returns the decoded response content.
projects/:project_id/star
my $project = $api->unstar_project( $project_id, );
Sends a POST request to projects/:project_id/unstar and returns the decoded response content.
projects/:project_id/unstar
my $languages = $api->project_languages( $project_id, );
Sends a GET request to projects/:project_id/languages and returns the decoded response content.
projects/:project_id/languages
my $project = $api->archive_project( $project_id, );
Sends a POST request to projects/:project_id/archive and returns the decoded response content.
projects/:project_id/archive
my $project = $api->unarchive_project( $project_id, );
Sends a POST request to projects/:project_id/unarchive and returns the decoded response content.
projects/:project_id/unarchive
$api->delete_project( $project_id, );
Sends a DELETE request to projects/:project_id.
my $upload = $api->upload_file_to_project( $project_id, \%params, );
Sends a POST request to projects/:project_id/uploads and returns the decoded response content.
projects/:project_id/uploads
The file parameter must point to a readable file on the local filesystem.
file
$api->share_project_with_group( $project_id, \%params, );
Sends a POST request to projects/:project_id/share.
projects/:project_id/share
$api->unshare_project_with_group( $project_id, $group_id, );
Sends a DELETE request to projects/:project_id/share/:group_id.
projects/:project_id/share/:group_id
my $hooks = $api->project_hooks( $project_id, );
Sends a GET request to projects/:project_id/hooks and returns the decoded response content.
projects/:project_id/hooks
my $hook = $api->project_hook( $project_id, $hook_id, );
Sends a GET request to projects/:project_id/hooks/:hook_id and returns the decoded response content.
projects/:project_id/hooks/:hook_id
my $hook = $api->create_project_hook( $project_id, \%params, );
Sends a POST request to projects/:project_id/hooks and returns the decoded response content.
my $hook = $api->edit_project_hook( $project_id, $hook_id, \%params, );
Sends a PUT request to projects/:project_id/hooks/:hook_id and returns the decoded response content.
$api->delete_project_hook( $project_id, $hook_id, );
Sends a DELETE request to projects/:project_id/hooks/:hook_id.
$api->set_project_fork( $project_id, $from_project_id, );
Sends a POST request to projects/:project_id/fork/:from_project_id.
projects/:project_id/fork/:from_project_id
$api->clear_project_fork( $project_id, );
Sends a DELETE request to projects/:project_id/fork.
$api->start_housekeeping( $project_id, );
Sends a POST request to projects/:project_id/housekeeping.
projects/:project_id/housekeeping
$api->transfer_project_to_namespace( $project_id, \%params, );
Sends a PUT request to projects/:project_id/transfer.
projects/:project_id/transfer
my $requests = $api->project_access_requests( $project_id, \%params, );
Sends a GET request to projects/:project_id/access_requests and returns the decoded response content.
projects/:project_id/access_requests
my $request = $api->request_project_access( $project_id, );
Sends a POST request to projects/:project_id/access_requests and returns the decoded response content.
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 content.
projects/:project_id/access_requests/:user_id/approve
$api->deny_project_access( $project_id, $user_id, );
Sends a DELETE request to projects/:project_id/access_requests/:user_id.
projects/:project_id/access_requests/:user_id
See https://docs.gitlab.com/ce/api/project_badges.html.
my $badges = $api->project_badges( $project_id, );
Sends a GET request to projects/:project_id/badges and returns the decoded response content.
projects/:project_id/badges
my $badge = $api->project_badge( $project_id, $badge_id, );
Sends a GET request to projects/:project_id/badges/:badge_id and returns the decoded response content.
projects/:project_id/badges/:badge_id
my $badge = $api->create_project_badge( $project_id, \%params, );
Sends a POST request to projects/:project_id/badges and returns the decoded response content.
my $badge = $api->edit_project_badge( $project_id, $badge_id, \%params, );
Sends a PUT request to projects/:project_id/badges/:badge_id and returns the decoded response content.
$api->delete_project_badge( $project_id, $badge_id, );
Sends a DELETE request to projects/:project_id/badges/:badge_id.
my $preview = $api->preview_project_badge( $project_id, \%params, );
Sends a GET request to projects/:project_id/badges/render and returns the decoded response content.
projects/:project_id/badges/render
See https://docs.gitlab.com/ce/api/project_import_export.html.
$api->schedule_project_export( $project_id, \%params, );
Sends a POST request to projects/:project_id/export.
projects/:project_id/export
my $status = $api->project_export_status( $project_id, );
Sends a GET request to projects/:project_id/export and returns the decoded response content.
my $download = $api->download_project_export( $project_id, );
Sends a GET request to projects/:project_id/export/download and returns the decoded response content.
projects/:project_id/export/download
$api->schedule_project_import( \%params, );
Sends a POST request to projects/import.
projects/import
my $status = $api->project_import_status( $project_id, );
Sends a GET request to projects/:project_id/import and returns the decoded response content.
projects/:project_id/import
my $members = $api->project_members( $project_id, \%params, );
Sends a GET request to projects/:project_id/members and returns the decoded response content.
projects/:project_id/members
my $members = $api->all_project_members( $project_id, \%params, );
Sends a GET request to projects/:project_id/members/all and returns the decoded response content.
projects/:project_id/members/all
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 content.
projects/:project_id/members/:user_id
my $member = $api->add_project_member( $project_id, \%params, );
Sends a POST request to projects/:project_id/members and returns the decoded response content.
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 content.
$api->remove_project_member( $project_id, $user_id, );
Sends a DELETE request to projects/:project_id/members/:user_id.
See https://docs.gitlab.com/ce/api/project_snippets.html.
my $snippets = $api->project_snippets( $project_id, \%params, );
Sends a GET request to projects/:project_id/snippets and returns the decoded response content.
projects/:project_id/snippets
my $snippet = $api->project_snippet( $project_id, $snippet_id, );
Sends a GET request to projects/:project_id/snippets/:snippet_id and returns the decoded response content.
projects/:project_id/snippets/:snippet_id
$api->create_project_snippet( $project_id, \%params, );
Sends a POST request to projects/:project_id/snippets.
$api->edit_project_snippet( $project_id, $snippet_id, \%params, );
Sends a PUT request to projects/:project_id/snippets/:snippet_id.
$api->delete_project_snippet( $project_id, $snippet_id, );
Sends a DELETE request to projects/:project_id/snippets/:snippet_id.
my $content = $api->project_snippet_content( $project_id, $snippet_id, );
Sends a GET request to projects/:project_id/snippets/:snippet_id/raw and returns the decoded response content.
projects/:project_id/snippets/:snippet_id/raw
my $user_agent = $api->project_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 content.
projects/:project_id/snippets/:snippet_id/user_agent_detail
See https://docs.gitlab.com/ce/api/protected_branches.html.
my $branches = $api->protected_branches( $project_id, \%params, );
Sends a GET request to projects/:project_id/protected_branches and returns the decoded response content.
projects/:project_id/protected_branches
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 content.
projects/:project_id/protected_branches/:branch_name
my $branch = $api->protect_branch( $project_id, \%params, );
Sends a POST request to projects/:project_id/protected_branches and returns the decoded response content.
$api->unprotect_branch( $project_id, $branch_name, );
Sends a DELETE request to projects/:project_id/protected_branches/:branch_name.
See https://docs.gitlab.com/ce/api/protected_tags.html.
my $tags = $api->protected_tags( $project_id, \%params, );
Sends a GET request to projects/:project_id/protected_tags and returns the decoded response content.
projects/:project_id/protected_tags
my $tag = $api->protected_tag( $project_id, $tag_name, );
Sends a GET request to projects/:project_id/protected_tags/:tag_name and returns the decoded response content.
projects/:project_id/protected_tags/:tag_name
my $tag = $api->protect_tag( $project_id, \%params, );
Sends a POST request to projects/:project_id/protected_tags and returns the decoded response content.
$api->unprotect_tag( $project_id, $tag_name, );
Sends a DELETE request to projects/:project_id/protected_tags/:tag_name.
See https://docs.gitlab.com/ce/api/releases/index.html.
my $releases = $api->releases( $project_id, \%params, );
Sends a GET request to projects/:project_id/releases and returns the decoded response content.
projects/:project_id/releases
my $release = $api->release( $project_id, $tag_name, );
Sends a GET request to projects/:project_id/releases/:tag_name and returns the decoded response content.
projects/:project_id/releases/:tag_name
my $release = $api->create_release( $project_id, \%params, );
Sends a POST request to projects/:project_id/releases and returns the decoded response content.
my $release = $api->update_release( $project_id, $tag_name, \%params, );
Sends a PUT request to projects/:project_id/releases/:tag_name and returns the decoded response content.
my $release = $api->delete_release( $project_id, $tag_name, );
Sends a DELETE request to projects/:project_id/releases/:tag_name and returns the decoded response content.
See https://docs.gitlab.com/ce/api/releases/links.html.
my $links = $api->release_links( $project_id, $tag_name, \%params, );
Sends a GET request to projects/:project_id/releases/:tag_name/assets/links and returns the decoded response content.
projects/:project_id/releases/:tag_name/assets/links
my $link = $api->release_link( $project_id, $tag_name, $link_id, );
Sends a GET request to projects/:project_id/releases/:tag_name/assets/links/:link_id and returns the decoded response content.
projects/:project_id/releases/:tag_name/assets/links/:link_id
my $link = $api->create_release_link( $project_id, $tag_name, \%params, );
Sends a POST request to projects/:project_id/releases/:tag_name/assets/links and returns the decoded response content.
my $link = $api->update_release_link( $project_id, $tag_name, $link_id, \%params, );
Sends a PUT request to projects/:project_id/releases/:tag_name/assets/links/:link_id and returns the decoded response content.
my $link = $api->delete_release_link( $project_id, $tag_name, $link_id, );
Sends a DELETE request to projects/:project_id/releases/:tag_name/assets/links/:link_id and returns the decoded response content.
See https://docs.gitlab.com/ce/api/remote_mirrors.html.
my $mirrors = $api->remote_mirrors( $project_id, );
Sends a GET request to projects/:project_id/remote_mirrors and returns the decoded response content.
projects/:project_id/remote_mirrors
my $mirror = $api->create_remote_mirror( $project_id, \%params, );
Sends a POST request to projects/:project_id/remote_mirrors and returns the decoded response content.
my $mirror = $api->edit_remote_mirror( $project_id, $mirror_id, \%params, );
Sends a PUT request to projects/:project_id/remote_mirrors/:mirror_id and returns the decoded response content.
projects/:project_id/remote_mirrors/:mirror_id
See https://docs.gitlab.com/ce/api/repositories.html.
my $tree = $api->tree( $project_id, \%params, );
Sends a GET request to projects/:project_id/repository/tree and returns the decoded response content.
projects/:project_id/repository/tree
my $blob = $api->blob( $project_id, $sha, );
Sends a GET request to projects/:project_id/repository/blobs/:sha and returns the decoded response content.
projects/:project_id/repository/blobs/:sha
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 content.
projects/:project_id/repository/blobs/:sha/raw
my $archive = $api->archive( $project_id, \%params, );
Sends a GET request to projects/:project_id/repository/archive and returns the raw response content.
projects/:project_id/repository/archive
my $comparison = $api->compare( $project_id, \%params, );
Sends a GET request to projects/:project_id/repository/compare and returns the decoded response content.
projects/:project_id/repository/compare
my $contributors = $api->contributors( $project_id, \%params, );
Sends a GET request to projects/:project_id/repository/contributors and returns the decoded response content.
projects/:project_id/repository/contributors
See https://docs.gitlab.com/ce/api/repository_files.html.
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 content.
projects/:project_id/repository/files/:file_path
my $content = $api->raw_file( $project_id, $file_path, \%params, );
Sends a GET request to projects/:project_id/repository/files/:file_path/raw and returns the raw response content.
projects/:project_id/repository/files/:file_path/raw
$api->create_file( $project_id, $file_path, \%params, );
Sends a POST request to projects/:project_id/repository/files/:file_path.
$api->edit_file( $project_id, $file_path, \%params, );
Sends a PUT request to projects/:project_id/repository/files/:file_path.
$api->delete_file( $project_id, $file_path, \%params, );
Sends a DELETE request to projects/:project_id/repository/files/:file_path.
See https://docs.gitlab.com/ce/api/runners.html.
my $runners = $api->runners( \%params, );
Sends a GET request to runners and returns the decoded response content.
runners
my $runners = $api->all_runners( \%params, );
Sends a GET request to runners/all and returns the decoded response content.
runners/all
my $runner = $api->runner( $runner_id, );
Sends a GET request to runners/:runner_id and returns the decoded response content.
runners/:runner_id
my $runner = $api->update_runner( $runner_id, \%params, );
Sends a PUT request to runners/:runner_id and returns the decoded response content.
$api->delete_runner( $runner_id, );
Sends a DELETE request to runners/:runner_id.
my $jobs = $api->runner_jobs( $runner_id, \%params, );
Sends a GET request to runners/:runner_id/jobs and returns the decoded response content.
runners/:runner_id/jobs
my $runners = $api->project_runners( $project_id, \%params, );
Sends a GET request to projects/:project_id/runners and returns the decoded response content.
projects/:project_id/runners
my $runner = $api->enable_project_runner( $project_id, \%params, );
Sends a POST request to projects/:project_id/runners and returns the decoded response content.
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 content.
projects/:project_id/runners/:runner_id
See https://docs.gitlab.com/ce/api/search.html.
my $results = $api->search( \%params, );
Sends a GET request to search and returns the decoded response content.
search
See https://docs.gitlab.com/ce/api/services.html.
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 content.
projects/:project_id/services/:service_name
$api->edit_project_service( $project_id, $service_name, \%params, );
Sends a PUT request to projects/:project_id/services/:service_name.
$api->delete_project_service( $project_id, $service_name, );
Sends a DELETE request to projects/:project_id/services/:service_name.
See https://docs.gitlab.com/ce/api/settings.html.
my $settings = $api->settings();
Sends a GET request to application/settings and returns the decoded response content.
application/settings
my $settings = $api->update_settings( \%params, );
Sends a PUT request to application/settings and returns the decoded response content.
See https://docs.gitlab.com/ce/api/statistics.html.
my $statistics = $api->statistics();
Sends a GET request to application/statistics and returns the decoded response content.
application/statistics
See https://docs.gitlab.com/ce/api/sidekiq_metrics.html.
my $metrics = $api->queue_metrics();
Sends a GET request to sidekiq/queue_metrics and returns the decoded response content.
sidekiq/queue_metrics
my $metrics = $api->process_metrics();
Sends a GET request to sidekiq/process_metrics and returns the decoded response content.
sidekiq/process_metrics
my $stats = $api->job_stats();
Sends a GET request to sidekiq/job_stats and returns the decoded response content.
sidekiq/job_stats
my $metrics = $api->compound_metrics();
Sends a GET request to sidekiq/compound_metrics and returns the decoded response content.
sidekiq/compound_metrics
See https://docs.gitlab.com/ce/api/system_hooks.html.
my $hooks = $api->hooks( \%params, );
Sends a GET request to hooks and returns the decoded response content.
hooks
$api->create_hook( \%params, );
Sends a POST request to hooks.
my $hook = $api->test_hook( $hook_id, );
Sends a GET request to hooks/:hook_id and returns the decoded response content.
hooks/:hook_id
$api->delete_hook( $hook_id, );
Sends a DELETE request to hooks/:hook_id.
See https://docs.gitlab.com/ce/api/tags.html.
my $tags = $api->tags( $project_id, \%params, );
Sends a GET request to projects/:project_id/repository/tags and returns the decoded response content.
projects/:project_id/repository/tags
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 content.
projects/:project_id/repository/tags/:tag_name
my $tag = $api->create_tag( $project_id, \%params, );
Sends a POST request to projects/:project_id/repository/tags and returns the decoded response content.
$api->delete_tag( $project_id, $tag_name, );
Sends a DELETE request to projects/:project_id/repository/tags/:tag_name.
my $release = $api->create_tag_release( $project_id, $tag_name, \%params, );
Sends a POST request to projects/:project_id/repository/tags/:tag_name/release and returns the decoded response content.
projects/:project_id/repository/tags/:tag_name/release
my $release = $api->update_tag_release( $project_id, $tag_name, \%params, );
Sends a PUT request to projects/:project_id/repository/tags/:tag_name/release and returns the decoded response content.
See https://docs.gitlab.com/ce/api/todos.html.
my $todos = $api->todos( \%params, );
Sends a GET request to todos and returns the decoded response content.
todos
my $todo = $api->mark_todo_done( $todo_id, );
Sends a POST request to todos/:todo_id/mark_as_done and returns the decoded response content.
todos/:todo_id/mark_as_done
$api->mark_all_todos_done();
Sends a POST request to todos/mark_as_done.
todos/mark_as_done
See https://docs.gitlab.com/ce/api/users.html.
my $users = $api->users( \%params, );
Sends a GET request to users and returns the decoded response content.
users
my $user = $api->user( $user_id, );
Sends a GET request to users/:user_id and returns the decoded response content.
users/:user_id
$api->create_user( \%params, );
Sends a POST request to users.
$api->edit_user( $user_id, \%params, );
Sends a PUT request to users/:user_id.
$api->delete_user( $user_id, \%params, );
Sends a DELETE request to users/:user_id.
my $user = $api->current_user();
Sends a GET request to user and returns the decoded response content.
user
my $keys = $api->current_user_ssh_keys( \%params, );
Sends a GET request to user/keys and returns the decoded response content.
user/keys
my $keys = $api->user_ssh_keys( $user_id, \%params, );
Sends a GET request to users/:user_id/keys and returns the decoded response content.
users/:user_id/keys
my $key = $api->user_ssh_key( $key_id, );
Sends a GET request to user/keys/:key_id and returns the decoded response content.
user/keys/:key_id
$api->create_current_user_ssh_key( \%params, );
Sends a POST request to user/keys.
$api->create_user_ssh_key( $user_id, \%params, );
Sends a POST request to users/:user_id/keys.
$api->delete_current_user_ssh_key( $key_id, );
Sends a DELETE request to user/keys/:key_id.
$api->delete_user_ssh_key( $user_id, $key_id, );
Sends a DELETE request to users/:user_id/keys/:key_id.
users/:user_id/keys/:key_id
my $keys = $api->current_user_gpg_keys( \%params, );
Sends a GET request to user/gpg_keys and returns the decoded response content.
user/gpg_keys
my $key = $api->current_user_gpg_key( $key_id, );
Sends a GET request to user/gpg_keys/:key_id and returns the decoded response content.
user/gpg_keys/:key_id
$api->create_current_user_gpg_key( \%params, );
Sends a POST request to user/gpg_keys.
$api->delete_current_user_gpg_key( $key_id, );
Sends a DELETE request to user/gpg_keys/:key_id.
my $keys = $api->user_gpg_keys( $user_id, \%params, );
Sends a GET request to users/:user_id/gpg_keys and returns the decoded response content.
users/:user_id/gpg_keys
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 content.
users/:user_id/gpg_keys/:key_id
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 content.
$api->delete_user_gpg_key( $user_id, $key_id, );
Sends a DELETE request to users/:user_id/gpg_keys/:key_id.
my $emails = $api->current_user_emails( \%params, );
Sends a GET request to user/emails and returns the decoded response content.
user/emails
my $emails = $api->user_emails( $user_id, \%params, );
Sends a GET request to users/:user_id/emails and returns the decoded response content.
users/:user_id/emails
my $email = $api->current_user_email( $email_id, );
Sends a GET request to user/emails/:email_id and returns the decoded response content.
user/emails/:email_id
my $email = $api->create_current_user_email( \%params, );
Sends a POST request to user/emails and returns the decoded response content.
my $email = $api->create_user_email( $user_id, \%params, );
Sends a POST request to users/:user_id/emails and returns the decoded response content.
$api->delete_current_user_email( $email_id, );
Sends a DELETE request to user/emails/:email_id.
$api->delete_user_email( $user_id, $email_id, );
Sends a DELETE request to users/:user_id/emails/:email_id.
users/:user_id/emails/:email_id
my $success = $api->block_user( $user_id, );
Sends a POST request to users/:user_id/block and returns the decoded response content.
users/:user_id/block
my $success = $api->unblock_user( $user_id, );
Sends a POST request to users/:user_id/unblock and returns the decoded response content.
users/:user_id/unblock
$api->approve_user( $user_id, );
Sends a POST request to users/:user_id/approve.
users/:user_id/approve
$api->reject_user( $user_id, );
Sends a POST request to users/:user_id/reject.
users/:user_id/reject
$api->activate_user( $user_id, );
Sends a POST request to users/:user_id/activate.
users/:user_id/activate
$api->deactivate_user( $user_id, );
Sends a POST request to users/:user_id/deactivate.
users/:user_id/deactivate
$api->ban_user( $user_id, );
Sends a POST request to users/:user_id/ban.
users/:user_id/ban
$api->unban_user( $user_id, );
Sends a POST request to users/:user_id/unban.
users/:user_id/unban
my $tokens = $api->user_impersonation_tokens( $user_id, \%params, );
Sends a GET request to users/:user_id/impersonation_tokens and returns the decoded response content.
users/:user_id/impersonation_tokens
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 content.
users/:user_id/impersonation_tokens/:impersonation_token_id
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 content.
$api->delete_user_impersonation_token( $user_id, $impersonation_token_id, );
Sends a DELETE request to users/:user_id/impersonation_tokens/:impersonation_token_id.
my $activities = $api->all_user_activities( \%params, );
Sends a GET request to user/activities and returns the decoded response content.
user/activities
my $memberships = $api->user_memberships( $user_id, \%params, );
Sends a GET request to users/:user_id/memberships and returns the decoded response content.
users/:user_id/memberships
See https://docs.gitlab.com/ce/api/lint.html.
my $result = $api->lint( \%params, );
Sends a POST request to lint and returns the decoded response content.
lint
See https://docs.gitlab.com/ce/api/version.html.
my $version = $api->version();
Sends a GET request to version and returns the decoded response content.
version
See https://docs.gitlab.com/ce/api/wikis.html.
my $pages = $api->wiki_pages( $project_id, \%params, );
Sends a GET request to projects/:project_id/wikis and returns the decoded response content.
projects/:project_id/wikis
my $pages = $api->wiki_page( $project_id, $slug, );
Sends a GET request to projects/:project_id/wikis/:slug and returns the decoded response content.
projects/:project_id/wikis/:slug
my $page = $api->create_wiki_page( $project_id, \%params, );
Sends a POST request to projects/:project_id/wikis and returns the decoded response content.
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 content.
$api->delete_wiki_page( $project_id, $slug, );
Sends a DELETE request to projects/:project_id/wikis/:slug.
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.
authors/
lib/GitLab/API/v4.pm
Please see https://github.com/bluefeet/GitLab-API-v4/blob/master/author/README.pod for more information.
Alternatively, you can open a ticket.
Please submit bugs and feature requests to the GitLab-API-v4 GitHub issue tracker:
https://github.com/bluefeet/GitLab-API-v4/issues
Aran Clary Deltac <bluefeet@gmail.com>
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> gregor herrmann <gregoa@debian.org> Luc Didry <luc@didry.org> Kieren Diment <kieren.diment@staples.com.au> Dmitry Frolov <dmitry.frolov@gmail.com> Thomas Klausner <domm@plix.at> Graham Knop <haarg@haarg.org> Stig Palmquist <git@stig.io> Dan Book <grinnz@grinnz.com> James Wright <jwright@ecstuning.com> Jonathan Taylor <jon@stackhaus.com> g0t mi1k <have.you.g0tmi1k@gmail.com>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install GitLab::API::v4, copy and paste the appropriate command in to your terminal.
cpanm
cpanm GitLab::API::v4
CPAN shell
perl -MCPAN -e shell install GitLab::API::v4
For more information on module installation, please visit the detailed CPAN module installation guide.