Deprecated.
NAME
GitLab::API::v3 - A complete GitLab API v3 client. (DEPRECATED)
SYNOPSIS
use GitLab::API::v3;
my $api = GitLab::API::v3->new(
url => $v3_api_url,
token => $token,
);
my $branches = $api->branches( $project_id );
DEPRECATED
This module is at the end of it's life as the latest GitLab no longer supports the v3 API. Instead, use GitLab::API::v4.
DESCRIPTION
This module provides a one-to-one interface with the GitLab API v3. 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-v3 command-line interface (CLI).
CREDENTIALS
Authentication credentials may be defined by setting either the "token", the "login" and "password", or the "email" and "password" arguments.
When the object is constructed the "login", "email", and "password" arguments are used to call "session" to generate a token. The token is saved in the "token" attribute, and the login/email/password arguments are discarded.
If no credentials are supplied then the client will be anonymous and greatly limited in what it can do with the API.
CONSTANTS
Several values in the GitLab API require looking up the numeric value for a meaning (such as access_level
and visibility_level
). Instead of doing that, you can use GitLab::API::v3::Constants.
EXCEPTIONS
The API methods will all throw (hopefully) a useful exception if an unsuccessful response is received from the API. That is except for GET
requests that return a 404
response - these will return undef
for methods that return a value.
If you'd like to catch and handle these exceptions consider using Try::Tiny.
LOGGING
This module uses Log::Any and produces some debug messages here and there, but the most useful bits are the info messages produced just before each API call.
PROJECT ID
Note that many API calls require a $project_id
. This can be specified as either a numeric project ID
, or as a NAMESPACE_PATH/PROJECT_PATH
in many cases. Perhaps even all cases, but the GitLab documentation on this point is vague.
RETURN VALUES
Many of this module's methods should return a value but do not currently. This is due to the fact that this module was built as a strict representation of GitLab's own documentation which is often inconsistent.
If you find a method that should provide a return value, but doesn't currently, please verify that GitLab actually does return a value and then submit a pull request or open an issue. See "CONTRIBUTING" for more info.
REQUIRED ARGUMENTS
url
The URL to your v3 API endpoint. Typically this will be something like http://git.example.com/api/v3
.
OPTIONAL ARGUMENTS
token
A GitLab API token. If set then neither "login" or "email" may be set. Read more in "CREDENTIALS".
login
A GitLab user login name. If set then "password" must be set. Read more in "CREDENTIALS".
A GitLab user email. If set then "password" must be set. Read more in "CREDENTIALS".
password
A GitLab user password. This must be set if either "login" or "email" are set. Read more in "CREDENTIALS".
rest_client
An instance of GitLab::API::v3::RESTClient. Typically you will not be setting this as it defaults to a new instance and customization should not be necessary.
retries
The number of times the request should be retried in case it does not succeed. Defaults to 0, meaning that a failed request will not be retried.
UTILITY METHODS
paginator
my $paginator = $api->paginator( $method, @method_args );
my $members = $api->paginator('group_members', $group_id);
while (my $member = $members->next()) {
...
}
my $users_pager = $api->paginator('users');
while (my $users = $users_pager->next_page()) {
...
}
my $all_open_issues = $api->paginator(
'issues',
$project_id,
{ state=>'opened' },
)->all();
Given a method who supports the page
and per_page
parameters, and returns an array ref, this will return a GitLab::API::v3::Paginator object that will allow you to walk the records one page or one record at a time.
AWARD EMOJI METHODS
See http://docs.gitlab.com/ce/api/award_emoji.html.
issue_award_emojis
my $award_emojis = $api->issue_award_emojis(
$id,
$issue_id,
);
Sends a GET
request to /projects/:id/issues/:issue_id/award_emoji
and returns the decoded/deserialized response body.
merge_request_award_emojis
my $award_emojis = $api->merge_request_award_emojis(
$id,
$merge_request_id,
);
Sends a GET
request to /projects/:id/merge_requests/:merge_request_id/award_emoji
and returns the decoded/deserialized response body.
issue_award_emoji
my $award_emoji = $api->issue_award_emoji(
$id,
$issue_id,
$award_id,
);
Sends a GET
request to /projects/:id/issues/:issue_id/award_emoji/:award_id
and returns the decoded/deserialized response body.
merge_request_award_emoji
my $award_emoji = $api->merge_request_award_emoji(
$id,
$merge_request_id,
$award_id,
);
Sends a GET
request to /projects/:id/merge_requests/:merge_request_id/award_emoji/:award_id
and returns the decoded/deserialized response body.
create_issue_award_emoji
my $award_emoji = $api->create_issue_award_emoji(
$id,
$issue_id,
\%params,
);
Sends a POST
request to /projects/:id/issues/:issue_id/award_emoji
and returns the decoded/deserialized response body.
create_merge_request_award_emoji
my $award_emoji = $api->create_merge_request_award_emoji(
$id,
$merge_request_id,
\%params,
);
Sends a POST
request to /projects/:id/merge_requests/:merge_request_id/award_emoji
and returns the decoded/deserialized response body.
delete_issue_award_emoji
my $award_emoji = $api->delete_issue_award_emoji(
$id,
$issue_id,
$award_id,
);
Sends a DELETE
request to /projects/:id/issues/:issue_id/award_emoji/:award_id
and returns the decoded/deserialized response body.
delete_merge_request_award_emoji
my $award_emoji = $api->delete_merge_request_award_emoji(
$id,
$merge_request_id,
$award_id,
);
Sends a DELETE
request to /projects/:id/merge_requests/:merge_request_id/award_emoji/:award_id
and returns the decoded/deserialized response body.
issue_note_award_emojis
my $award_emojis = $api->issue_note_award_emojis(
$id,
$issue_id,
$note_id,
);
Sends a GET
request to /projects/:id/issues/:issue_id/notes/:note_id/award_emoji
and returns the decoded/deserialized response body.
issue_note_award_emoji
my $award_emoji = $api->issue_note_award_emoji(
$id,
$issue_id,
$note_id,
$award_id,
);
Sends a GET
request to /projects/:id/issues/:issue_id/notes/:note_id/award_emoji/:award_id
and returns the decoded/deserialized response body.
create_issue_note_award_emoji
my $award_emoji = $api->create_issue_note_award_emoji(
$id,
$issue_id,
$note_id,
\%params,
);
Sends a POST
request to /projects/:id/issues/:issue_id/notes/:note_id/award_emoji
and returns the decoded/deserialized response body.
delete_issue_note_award_emoji
my $award_emoji = $api->delete_issue_note_award_emoji(
$id,
$issue_id,
$note_id,
$award_id,
);
Sends a DELETE
request to /projects/:id/issues/:issue_id/notes/:note_id/award_emoji/:award_id
and returns the decoded/deserialized response body.
merge_request_note_award_emojis
my $award_emojis = $api->merge_request_note_award_emojis(
$id,
$merge_request_id,
$note_id,
);
Sends a GET
request to /projects/:id/merge_requests/:merge_request_id/notes/:note_id/award_emoji
and returns the decoded/deserialized response body.
merge_request_note_award_emoji
my $award_emoji = $api->merge_request_note_award_emoji(
$id,
$merge_request_id,
$note_id,
$award_id,
);
Sends a GET
request to /projects/:id/merge_requests/:merge_request_id/notes/:note_id/award_emoji/:award_id
and returns the decoded/deserialized response body.
create_merge_request_note_award_emoji
my $award_emoji = $api->create_merge_request_note_award_emoji(
$id,
$merge_request_id,
$note_id,
\%params,
);
Sends a POST
request to /projects/:id/merge_requests/:merge_request_id/notes/:note_id/award_emoji
and returns the decoded/deserialized response body.
delete_merge_request_note_award_emoji
my $award_emoji = $api->delete_merge_request_note_award_emoji(
$id,
$merge_request_id,
$note_id,
$award_id,
);
Sends a DELETE
request to /projects/:id/merge_requests/:merge_request_id/notes/:note_id/award_emoji/:award_id
and returns the decoded/deserialized response body.
BRANCH METHODS
See http://doc.gitlab.com/ce/api/branches.html.
branches
my $branches = $api->branches(
$project_id,
);
Sends a GET
request to /projects/:project_id/repository/branches
and returns the decoded/deserialized response body.
branch
my $branch = $api->branch(
$project_id,
$branch_name,
);
Sends a GET
request to /projects/:project_id/repository/branches/:branch_name
and returns the decoded/deserialized response body.
protect_branch
$api->protect_branch(
$project_id,
$branch_name,
\%params,
);
Sends a PUT
request to /projects/:project_id/repository/branches/:branch_name/protect
.
unprotect_branch
$api->unprotect_branch(
$project_id,
$branch_name,
);
Sends a PUT
request to /projects/:project_id/repository/branches/:branch_name/unprotect
.
create_branch
my $branch = $api->create_branch(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/repository/branches
and returns the decoded/deserialized response body.
delete_branch
$api->delete_branch(
$project_id,
$branch_name,
);
Sends a DELETE
request to /projects/:project_id/repository/branches/:branch_name
.
BUILD METHODS
See http://docs.gitlab.com/ce/api/builds.html.
builds
my $builds = $api->builds(
$id,
\%params,
);
Sends a GET
request to /projects/:id/builds
and returns the decoded/deserialized response body.
commit_builds
my $builds = $api->commit_builds(
$id,
$sha,
\%params,
);
Sends a GET
request to /projects/:id/repository/commits/:sha/builds
and returns the decoded/deserialized response body.
build
my $build = $api->build(
$id,
$build_id,
);
Sends a GET
request to /projects/:id/builds/:build_id
and returns the decoded/deserialized response body.
build_artifacts
my $artifacts = $api->build_artifacts(
$id,
$build_id,
);
Sends a GET
request to /projects/:id/builds/:build_id/artifacts
and returns the decoded/deserialized response body.
build_trace
my $trace = $api->build_trace(
$id,
$build_id,
);
Sends a GET
request to /projects/:id/builds/:build_id/trace
and returns the decoded/deserialized response body.
cancel_build
my $build = $api->cancel_build(
$id,
$build_id,
);
Sends a POST
request to /projects/:id/builds/:build_id/cancel
and returns the decoded/deserialized response body.
retry_build
my $build = $api->retry_build(
$id,
$build_id,
);
Sends a POST
request to /projects/:id/builds/:build_id/retry
and returns the decoded/deserialized response body.
erase_build
my $build = $api->erase_build(
$id,
$build_id,
);
Sends a POST
request to /projects/:id/builds/:build_id/erase
and returns the decoded/deserialized response body.
keep_build_artifacts
my $build = $api->keep_build_artifacts(
$id,
$build_id,
);
Sends a POST
request to /projects/:id/builds/:build_id/artifacts/keep
and returns the decoded/deserialized response body.
BUILD TRIGGER METHODS
See http://docs.gitlab.com/ce/api/build_triggers.html.
triggers
my $triggers = $api->triggers(
$id,
);
Sends a GET
request to /projects/:id/triggers
and returns the decoded/deserialized response body.
trigger
my $trigger = $api->trigger(
$id,
$token,
);
Sends a GET
request to /projects/:id/triggers/:token
and returns the decoded/deserialized response body.
create_trigger
my $trigger = $api->create_trigger(
$id,
);
Sends a POST
request to /projects/:id/triggers
and returns the decoded/deserialized response body.
delete_trigger
my $trigger = $api->delete_trigger(
$id,
$token,
);
Sends a DELETE
request to /projects/:id/triggers/:token
and returns the decoded/deserialized response body.
BUILD VARIABLE METHODS
See http://docs.gitlab.com/ce/api/build_variables.html.
variables
my $variables = $api->variables(
$id,
);
Sends a GET
request to /projects/:id/variables
and returns the decoded/deserialized response body.
variable
my $variable = $api->variable(
$id,
$key,
);
Sends a GET
request to /projects/:id/variables/:key
and returns the decoded/deserialized response body.
create_variable
my $variable = $api->create_variable(
$id,
\%params,
);
Sends a POST
request to /projects/:id/variables
and returns the decoded/deserialized response body.
update_variable
my $variable = $api->update_variable(
$id,
$key,
\%params,
);
Sends a PUT
request to /projects/:id/variables/:key
and returns the decoded/deserialized response body.
delete_variable
my $variable = $api->delete_variable(
$id,
$key,
);
Sends a DELETE
request to /projects/:id/variables/:key
and returns the decoded/deserialized response body.
COMMIT METHODS
See http://doc.gitlab.com/ce/api/commits.html.
commits
my $commits = $api->commits(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/repository/commits
and returns the decoded/deserialized response body.
commit
my $commit = $api->commit(
$project_id,
$commit_sha,
);
Sends a GET
request to /projects/:project_id/repository/commits/:commit_sha
and returns the decoded/deserialized response body.
commit_diff
my $diff = $api->commit_diff(
$project_id,
$commit_sha,
);
Sends a GET
request to /projects/:project_id/repository/commits/:commit_sha/diff
and returns the decoded/deserialized response body.
commit_comments
my $comments = $api->commit_comments(
$project_id,
$commit_sha,
);
Sends a GET
request to /projects/:project_id/repository/commits/:commit_sha/comments
and returns the decoded/deserialized response body.
add_commit_comment
$api->add_commit_comment(
$project_id,
$commit_sha,
\%params,
);
Sends a POST
request to /projects/:project_id/repository/commits/:commit_sha/comments
.
DEPLOY KEY METHODS
See http://doc.gitlab.com/ce/api/deploy_keys.html.
deploy_keys
my $keys = $api->deploy_keys(
$project_id,
);
Sends a GET
request to /projects/:project_id/keys
and returns the decoded/deserialized response body.
deploy_key
my $key = $api->deploy_key(
$project_id,
$key_id,
);
Sends a GET
request to /projects/:project_id/keys/:key_id
and returns the decoded/deserialized response body.
create_deploy_key
$api->create_deploy_key(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/keys
.
delete_deploy_key
$api->delete_deploy_key(
$project_id,
$key_id,
);
Sends a DELETE
request to /projects/:project_id/keys/:key_id
.
GROUP METHODS
See http://doc.gitlab.com/ce/api/groups.html.
groups
my $groups = $api->groups();
Sends a GET
request to /groups
and returns the decoded/deserialized response body.
group
my $group = $api->group(
$group_id,
);
Sends a GET
request to /groups/:group_id
and returns the decoded/deserialized response body.
create_group
$api->create_group(
\%params,
);
Sends a POST
request to /groups
.
transfer_project
$api->transfer_project(
$group_id,
$project_id,
);
Sends a POST
request to /groups/:group_id/projects/:project_id
.
delete_group
$api->delete_group(
$group_id,
);
Sends a DELETE
request to /groups/:group_id
.
search_groups
my $groups = $api->search_groups(
\%params,
);
Sends a GET
request to /groups
and returns the decoded/deserialized response body.
group_members
my $members = $api->group_members(
$group_id,
);
Sends a GET
request to /groups/:group_id/members
and returns the decoded/deserialized response body.
group_projects
my $projects = $api->group_projects(
$group_id,
\%params,
);
Sends a GET
request to /groups/:group_id/projects
and returns the decoded/deserialized response body.
add_group_member
$api->add_group_member(
$group_id,
\%params,
);
Sends a POST
request to /groups/:group_id/members
.
edit_group_member
$api->edit_group_member(
$group_id,
$user_id,
\%params,
);
Sends a PUT
request to /groups/:group_id/members/:user_id
.
remove_group_member
$api->remove_group_member(
$group_id,
$user_id,
);
Sends a DELETE
request to /groups/:group_id/members/:user_id
.
ISSUE METHODS
See http://doc.gitlab.com/ce/api/issues.html.
all_issues
my $issues = $api->all_issues(
\%params,
);
Sends a GET
request to /issues
and returns the decoded/deserialized response body.
issues
my $issues = $api->issues(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/issues
and returns the decoded/deserialized response body.
issue
my $issue = $api->issue(
$project_id,
$issue_id,
);
Sends a GET
request to /projects/:project_id/issues/:issue_id
and returns the decoded/deserialized response body.
create_issue
my $issue = $api->create_issue(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/issues
and returns the decoded/deserialized response body.
edit_issue
my $issue = $api->edit_issue(
$project_id,
$issue_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/issues/:issue_id
and returns the decoded/deserialized response body.
KEY METHODS
See http://docs.gitlab.com/ce/api/keys.html.
key
my $key = $api->key(
$key_id,
);
Sends a GET
request to /keys/:key_id
and returns the decoded/deserialized response body.
LABEL METHODS
See http://doc.gitlab.com/ce/api/labels.html.
labels
my $labels = $api->labels(
$project_id,
);
Sends a GET
request to /projects/:project_id/labels
and returns the decoded/deserialized response body.
create_label
my $label = $api->create_label(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/labels
and returns the decoded/deserialized response body.
delete_label
$api->delete_label(
$project_id,
\%params,
);
Sends a DELETE
request to /projects/:project_id/labels
.
edit_label
my $label = $api->edit_label(
$project_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/labels
and returns the decoded/deserialized response body.
MERGE REQUEST METHODS
See http://doc.gitlab.com/ce/api/merge_requests.html.
merge_requests
my $merge_requests = $api->merge_requests(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/merge_requests
and returns the decoded/deserialized response body.
merge_request
my $merge_request = $api->merge_request(
$project_id,
$merge_request_id,
);
Sends a GET
request to /projects/:project_id/merge_request/:merge_request_id
and returns the decoded/deserialized response body.
create_merge_request
my $merge_request = $api->create_merge_request(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/merge_requests
and returns the decoded/deserialized response body.
edit_merge_request
my $merge_request = $api->edit_merge_request(
$project_id,
$merge_request_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/merge_requests/:merge_request_id
and returns the decoded/deserialized response body.
accept_merge_request
$api->accept_merge_request(
$project_id,
$merge_request_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/merge_requests/:merge_request_id/merge
.
add_merge_request_comment
$api->add_merge_request_comment(
$project_id,
$merge_request_id,
\%params,
);
Sends a POST
request to /projects/:project_id/merge_requests/:merge_request_id/comments
.
merge_request_comments
my $comments = $api->merge_request_comments(
$project_id,
$merge_request_id,
);
Sends a GET
request to /projects/:project_id/merge_requests/:merge_request_id/comments
and returns the decoded/deserialized response body.
MILESTONE METHODS
See http://doc.gitlab.com/ce/api/milestones.html.
milestones
my $milestones = $api->milestones(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/milestones
and returns the decoded/deserialized response body.
milestone
my $milestone = $api->milestone(
$project_id,
$milestone_id,
);
Sends a GET
request to /projects/:project_id/milestones/:milestone_id
and returns the decoded/deserialized response body.
create_milestone
$api->create_milestone(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/milestones
.
edit_milestone
$api->edit_milestone(
$project_id,
$milestone_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/milestones/:milestone_id
.
milestone_issues
my $issues = $api->milestone_issues(
$project_id,
$milestone_id,
);
Sends a GET
request to /projects/:project_id/milestones/:milestone_id/issues
and returns the decoded/deserialized response body.
OPEN SOURCE LICENSES METHODS
See http://docs.gitlab.com/ce/api/licenses.html.
licenses
my $licenses = $api->licenses(
\%params,
);
Sends a GET
request to /licenses
and returns the decoded/deserialized response body.
license
my $license = $api->license(
$license_key,
\%params,
);
Sends a GET
request to /licenses/:license_key
and returns the decoded/deserialized response body.
NAMESPACE METHODS
See http://docs.gitlab.com/ce/api/namespaces.html.
namespaces
my $namespaces = $api->namespaces(
\%params,
);
Sends a GET
request to /namespaces
and returns the decoded/deserialized response body.
NOTE METHODS
See http://doc.gitlab.com/ce/api/notes.html.
notes
my $notes = $api->notes(
$project_id,
$thing_type,
$thing_id,
);
Sends a GET
request to /projects/:project_id/:thing_type/:thing_id/notes
and returns the decoded/deserialized response body.
note
my $note = $api->note(
$project_id,
$thing_type,
$thing_id,
$note_id,
);
Sends a GET
request to /projects/:project_id/:thing_type/:thing_id/notes/:note_id
and returns the decoded/deserialized response body.
create_note
$api->create_note(
$project_id,
$thing_type,
$thing_id,
\%params,
);
Sends a POST
request to /projects/:project_id/:thing_type/:thing_id/notes
.
edit_note
$api->edit_note(
$project_id,
$thing_type,
$thing_id,
$note_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/:thing_type/:thing_id/notes/:note_id
.
PROJECT METHODS
See http://doc.gitlab.com/ce/api/projects.html.
projects
my $projects = $api->projects(
\%params,
);
Sends a GET
request to /projects
and returns the decoded/deserialized response body.
owned_projects
my $projects = $api->owned_projects(
\%params,
);
Sends a GET
request to /projects/owned
and returns the decoded/deserialized response body.
all_projects
my $projects = $api->all_projects(
\%params,
);
Sends a GET
request to /projects/all
and returns the decoded/deserialized response body.
project
my $project = $api->project(
$project_id,
);
Sends a GET
request to /projects/:project_id
and returns the decoded/deserialized response body.
project_events
my $events = $api->project_events(
$project_id,
);
Sends a GET
request to /projects/:project_id/events
and returns the decoded/deserialized response body.
create_project
my $project = $api->create_project(
\%params,
);
Sends a POST
request to /projects
and returns the decoded/deserialized response body.
create_project_for_user
$api->create_project_for_user(
$user_id,
\%params,
);
Sends a POST
request to /projects/user/:user_id
.
edit_project
my $project = $api->edit_project(
$project_id,
\%params,
);
Sends a PUT
request to /projects/:project_id
and returns the decoded/deserialized response body.
fork_project
$api->fork_project(
$project_id,
);
Sends a POST
request to /pojects/fork/:project_id
.
delete_project
$api->delete_project(
$project_id,
);
Sends a DELETE
request to /projects/:project_id
.
project_members
my $members = $api->project_members(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/members
and returns the decoded/deserialized response body.
project_member
my $member = $api->project_member(
$project_id,
$user_id,
);
Sends a GET
request to /project/:project_id/members/:user_id
and returns the decoded/deserialized response body.
add_project_member
$api->add_project_member(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/members
.
edit_project_member
$api->edit_project_member(
$project_id,
$user_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/members/:user_id
.
remove_project_member
$api->remove_project_member(
$project_id,
$user_id,
);
Sends a DELETE
request to /projects/:project_id/members/:user_id
.
share_project_with_group
$api->share_project_with_group(
$id,
\%params,
);
Sends a POST
request to /projects/:id/share
.
delete_shared_project_link_within_group
$api->delete_shared_project_link_within_group(
$id,
$group_id,
);
Sends a DELETE
request to /projects/:id/share/:group_id
.
project_hooks
my $hooks = $api->project_hooks(
$project_id,
);
Sends a GET
request to /projects/:project_id/hooks
and returns the decoded/deserialized response body.
project_hook
my $hook = $api->project_hook(
$project_id,
$hook_id,
);
Sends a GET
request to /project/:project_id/hooks/:hook_id
and returns the decoded/deserialized response body.
create_project_hook
$api->create_project_hook(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/hooks
.
edit_project_hook
$api->edit_project_hook(
$project_id,
$hook_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/hooks/:hook_id
.
delete_project_hook
my $hook = $api->delete_project_hook(
$project_id,
$hook_id,
);
Sends a DELETE
request to /projects/:project_id/hooks/:hook_id
and returns the decoded/deserialized response body.
set_project_fork
$api->set_project_fork(
$project_id,
$forked_from_id,
);
Sends a POST
request to /projects/:project_id/fork/:forked_from_id
.
clear_project_fork
$api->clear_project_fork(
$project_id,
);
Sends a DELETE
request to /projects/:project_id/fork
.
search_projects_by_name
my $projects = $api->search_projects_by_name(
$query,
\%params,
);
Sends a GET
request to /projects/search/:query
and returns the decoded/deserialized response body.
PROJECT SNIPPET METHODS
See http://doc.gitlab.com/ce/api/project_snippets.html.
snippets
my $snippets = $api->snippets(
$project_id,
);
Sends a GET
request to /projects/:project_id/snippets
and returns the decoded/deserialized response body.
snippet
my $snippet = $api->snippet(
$project_id,
$snippet_id,
);
Sends a GET
request to /projects/:project_id/snippets/:snippet_id
and returns the decoded/deserialized response body.
create_snippet
$api->create_snippet(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/snippets
.
edit_snippet
$api->edit_snippet(
$project_id,
$snippet_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/snippets/:snippet_id
.
delete_snippet
$api->delete_snippet(
$project_id,
$snippet_id,
);
Sends a DELETE
request to /projects/:project_id/snippets/:snippet_id
.
snippet_content
my $content = $api->snippet_content(
$project_id,
$snippet_id,
);
Sends a GET
request to /projects/:project_id/snippets/:snippet_id/raw
and returns the decoded/deserialized response body.
REPOSITORY METHODS
See http://doc.gitlab.com/ce/api/repositories.html.
tree
my $tree = $api->tree(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/repository/tree
and returns the decoded/deserialized response body.
blob
my $blob = $api->blob(
$project_id,
$ref,
\%params,
);
Sends a GET
request to /projects/:project_id/repository/blobs/:ref
and returns the decoded/deserialized response body.
raw_blob
my $raw_blob = $api->raw_blob(
$project_id,
$blob_sha,
);
Sends a GET
request to /projects/:project_id/repository/raw_blobs/:blob_sha
and returns the decoded/deserialized response body.
archive
my $archive = $api->archive(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/repository/archive
and returns the decoded/deserialized response body.
compare
my $comparison = $api->compare(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/repository/compare
and returns the decoded/deserialized response body.
contributors
my $contributors = $api->contributors(
$project_id,
);
Sends a GET
request to /projects/:project_id/repository/contributors
and returns the decoded/deserialized response body.
FILE METHODS
See http://doc.gitlab.com/ce/api/repository_files.html.
file
my $file = $api->file(
$project_id,
\%params,
);
Sends a GET
request to /projects/:project_id/repository/files
and returns the decoded/deserialized response body.
create_file
$api->create_file(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/repository/files
.
edit_file
$api->edit_file(
$project_id,
\%params,
);
Sends a PUT
request to /projects/:project_id/repository/files
.
delete_file
$api->delete_file(
$project_id,
\%params,
);
Sends a DELETE
request to /projects/:project_id/repository/files
.
RUNNER METHODS
See http://docs.gitlab.com/ce/api/runners.html.
runners
my $runners = $api->runners(
\%params,
);
Sends a GET
request to /runners
and returns the decoded/deserialized response body.
all_runners
my $runners = $api->all_runners(
\%params,
);
Sends a GET
request to /runners/all
and returns the decoded/deserialized response body.
runner
my $runner = $api->runner(
$id,
);
Sends a GET
request to /runners/:id
and returns the decoded/deserialized response body.
update_runner
my $runner = $api->update_runner(
$id,
\%params,
);
Sends a PUT
request to /runners/:id
and returns the decoded/deserialized response body.
delete_runner
my $runner = $api->delete_runner(
$id,
);
Sends a DELETE
request to /runners/:id
and returns the decoded/deserialized response body.
project_runners
my $runners = $api->project_runners(
$id,
);
Sends a GET
request to /projects/:id/runners
and returns the decoded/deserialized response body.
enable_project_runner
my $runner = $api->enable_project_runner(
$id,
\%params,
);
Sends a POST
request to /projects/:id/runners
and returns the decoded/deserialized response body.
disable_project_runner
my $runner = $api->disable_project_runner(
$id,
$runner_id,
);
Sends a DELETE
request to /projects/:id/runners/:runner_id
and returns the decoded/deserialized response body.
SERVICE METHODS
See http://doc.gitlab.com/ce/api/services.html.
edit_project_service
$api->edit_project_service(
$project_id,
$service_name,
\%params,
);
Sends a PUT
request to /projects/:project_id/services/:service_name
.
delete_project_service
$api->delete_project_service(
$project_id,
$service_name,
);
Sends a DELETE
request to /projects/:project_id/services/:service_name
.
SESSION METHODS
See http://doc.gitlab.com/ce/api/session.html.
session
my $session = $api->session(
\%params,
);
Sends a POST
request to /session
and returns the decoded/deserialized response body.
SETTINGS METHODS
See http://docs.gitlab.com/ce/api/settings.html.
settings
my $settings = $api->settings();
Sends a GET
request to /application/settings
and returns the decoded/deserialized response body.
update_settings
my $settings = $api->update_settings(
\%params,
);
Sends a PUT
request to /application/settings
and returns the decoded/deserialized response body.
SIDEKIQ METHODS
See http://docs.gitlab.com/ce/api/sidekiq_metrics.html.
queue_metrics
my $metrics = $api->queue_metrics();
Sends a GET
request to /sidekiq/queue_metrics
and returns the decoded/deserialized response body.
process_metrics
my $metrics = $api->process_metrics();
Sends a GET
request to /sidekiq/process_metrics
and returns the decoded/deserialized response body.
job_stats
my $stats = $api->job_stats();
Sends a GET
request to /sidekiq/job_stats
and returns the decoded/deserialized response body.
compound_metrics
my $metrics = $api->compound_metrics();
Sends a GET
request to /sidekiq/compound_metrics
and returns the decoded/deserialized response body.
USER SNIPPET METHODS
See http://docs.gitlab.com/ce/api/snippets.html.
user_snippets
my $snippets = $api->user_snippets();
Sends a GET
request to /snippets
and returns the decoded/deserialized response body.
user_snippet
my $snippet = $api->user_snippet(
$snippet_id,
);
Sends a GET
request to /snippets/:snippet_id
and returns the decoded/deserialized response body.
create_user_snippet
$api->create_user_snippet(
\%params,
);
Sends a POST
request to /snippets
.
edit_user_snippet
$api->edit_user_snippet(
$snippet_id,
\%params,
);
Sends a PUT
request to /snippets/:snippet_id
.
delete_user_snippet
$api->delete_user_snippet(
$snippet_id,
);
Sends a DELETE
request to /snippets/:snippet_id
.
public_snippets
my $snippets = $api->public_snippets();
Sends a GET
request to /snippets/public
and returns the decoded/deserialized response body.
SYSTEM HOOK METHODS
See http://doc.gitlab.com/ce/api/system_hooks.html.
hooks
my $hooks = $api->hooks();
Sends a GET
request to /hooks
and returns the decoded/deserialized response body.
create_hook
$api->create_hook(
\%params,
);
Sends a POST
request to /hooks
.
test_hook
my $hook = $api->test_hook(
$hook_id,
);
Sends a GET
request to /hooks/:hook_id
and returns the decoded/deserialized response body.
delete_hook
$api->delete_hook(
$hook_id,
);
Sends a DELETE
request to /hooks/:hook_id
.
TAG METHODS
See http://docs.gitlab.com/ce/api/tags.html.
tags
my $tags = $api->tags(
$project_id,
);
Sends a GET
request to /projects/:project_id/repository/tags
and returns the decoded/deserialized response body.
tag
my $tag = $api->tag(
$project_id,
$tag_name,
);
Sends a GET
request to /projects/:project_id/repository/tags/:tag_name
and returns the decoded/deserialized response body.
create_tag
my $tag = $api->create_tag(
$project_id,
\%params,
);
Sends a POST
request to /projects/:project_id/repository/tags
and returns the decoded/deserialized response body.
delete_tag
$api->delete_tag(
$project_id,
$tag_name,
);
Sends a DELETE
request to /projects/:project_id/repository/tags/:tag_name
.
create_release
$api->create_release(
$project_id,
$tag_name,
\%params,
);
Sends a POST
request to /projects/:project_id/repository/tags/:tag_name/release
.
update_release
$api->update_release(
$project_id,
$tag_name,
\%params,
);
Sends a PUT
request to /projects/:project_id/repository/tags/:tag_name/release
.
USER METHODS
See http://doc.gitlab.com/ce/api/users.html.
users
my $users = $api->users(
\%params,
);
Sends a GET
request to /users
and returns the decoded/deserialized response body.
user
my $user = $api->user(
$user_id,
);
Sends a GET
request to /users/:user_id
and returns the decoded/deserialized response body.
create_user
$api->create_user(
\%params,
);
Sends a POST
request to /users
.
edit_user
$api->edit_user(
$user_id,
\%params,
);
Sends a PUT
request to /users/:user_id
.
delete_user
my $user = $api->delete_user(
$user_id,
);
Sends a DELETE
request to /users/:user_id
and returns the decoded/deserialized response body.
current_user
my $user = $api->current_user();
Sends a GET
request to /user
and returns the decoded/deserialized response body.
current_user_ssh_keys
my $keys = $api->current_user_ssh_keys();
Sends a GET
request to /user/keys
and returns the decoded/deserialized response body.
user_ssh_keys
my $keys = $api->user_ssh_keys(
$user_id,
);
Sends a GET
request to /users/:user_id/keys
and returns the decoded/deserialized response body.
user_ssh_key
my $key = $api->user_ssh_key(
$key_id,
);
Sends a GET
request to /user/keys/:key_id
and returns the decoded/deserialized response body.
create_current_user_ssh_key
$api->create_current_user_ssh_key(
\%params,
);
Sends a POST
request to /user/keys
.
create_user_ssh_key
$api->create_user_ssh_key(
$user_id,
\%params,
);
Sends a POST
request to /users/:user_id/keys
.
delete_current_user_ssh_key
$api->delete_current_user_ssh_key(
$key_id,
);
Sends a DELETE
request to /user/keys/:key_id
.
delete_user_ssh_key
$api->delete_user_ssh_key(
$user_id,
$key_id,
);
Sends a DELETE
request to /users/:user_id/keys/:key_id
.
SEE ALSO
Net::Gitlab purports to provide an interface to the GitLab API, but it is hard to tell due to a complete lack of documentation via either POD or unit tests.
SUPPORT
Please submit bugs and feature requests to the GitLab-API-v3 GitHub issue tracker:
https://github.com/bluefeet/GitLab-API-v3/issues
Note that, due to the "DEPRECATED" nature of this distribution, new features and such may be denied.
CONTRIBUTING
This module is auto-generated from a set of YAML files defining the interface of GitLab's API. If you'd like to contribute to this module then please feel free to make a fork on GitHub and submit a pull request, just make sure you edit the files in the authors/
directory instead of lib/GitLab/API/v3.pm
directly.
Please see https://github.com/bluefeet/GitLab-API-v3/blob/master/author/README.pod for more information.
Alternatively, you can open a ticket.
AUTHORS
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>
ACKNOWLEDGEMENTS
Thanks to ZipRecruiter for encouraging their employees to contribute back to the open source ecosystem. Without their dedication to quality software development this distribution would not exist.
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.