.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "GitLab::API::v4 3pm" .TH GitLab::API::v4 3pm "2019-01-28" "perl v5.24.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" GitLab::API::v4 \- A complete GitLab API v4 client. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use GitLab::API::v4; \& \& my $api = GitLab::API::v4\->new( \& url => $v4_api_url, \& private_token => $token, \& ); \& \& my $branches = $api\->branches( $project_id ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides a one-to-one interface with the GitLab \&\s-1API\s0 v4. Much is not documented here as it would just be duplicating GitLab's own \s-1API\s0 Documentation . .PP Note that this distribution also includes the gitlab\-api\-v4 command-line interface (\s-1CLI\s0). .SS "Upgrading" .IX Subsection "Upgrading" If you are upgrading from GitLab::API::v3 make sure you read: .PP .PP Also, review the \f(CW\*(C`Changes\*(C'\fR file included in the distribution as it outlines the changes made to convert the v3 module to v4: .PP .PP 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: .PP .PP Or clone the repo and run this command: .PP \&\f(CW\*(C`git diff 72e384775c9570f60f8ef68dee3a1eecd347fb69..HEAD \-\- author/sections/\*(C'\fR .SS "Credentials" .IX Subsection "Credentials" Authentication credentials may be defined by setting either the \*(L"access_token\*(R" or \*(L"private_token\*(R" arguments. .PP If no credentials are supplied then the client will be anonymous and greatly limited in what it can do with the \s-1API.\s0 .PP 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. .SS "Constants" .IX Subsection "Constants" The GitLab \s-1API,\s0 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. .SS "Exceptions" .IX Subsection "Exceptions" The \s-1API\s0 methods will all throw a useful exception if an unsuccessful response is received from the \s-1API. \s0 That is except for \&\f(CW\*(C`GET\*(C'\fR requests that return a \f(CW404\fR response \- these will return \f(CW\*(C`undef\*(C'\fR for methods that return a value. .PP If you'd like to catch and handle these exceptions consider using Try::Tiny. .SS "Logging" .IX Subsection "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 \s-1API\s0 call. .SS "Project \s-1ID\s0" .IX Subsection "Project ID" Note that many \s-1API\s0 calls require a \f(CW$project_id\fR. This can be specified as a numeric project \f(CW\*(C`ID\*(C'\fR or, in many cases, maybe all cases, as a \f(CW\*(C`NAMESPACE_PATH/PROJECT_PATH\*(C'\fR string. The GitLab documentation on this point is vague. .SH "REQUIRED ARGUMENTS" .IX Header "REQUIRED ARGUMENTS" .SS "url" .IX Subsection "url" The \s-1URL\s0 to your v4 \s-1API\s0 endpoint. Typically this will be something like \f(CW\*(C`https://git.example.com/api/v4\*(C'\fR. .SH "OPTIONAL ARGUMENTS" .IX Header "OPTIONAL ARGUMENTS" .SS "access_token" .IX Subsection "access_token" A GitLab \s-1API\s0 OAuth2 token. If set then \*(L"private_token\*(R" may not be set. .PP See . .SS "private_token" .IX Subsection "private_token" A GitLab \s-1API\s0 personal token. If set then \*(L"access_token\*(R" may not be set. .PP See . .SS "retries" .IX Subsection "retries" The number of times the request should be retried in case it fails (5XX \s-1HTTP\s0 response code). Defaults to \f(CW0\fR (false), meaning that a failed request will not be retried. .SS "sudo_user" .IX Subsection "sudo_user" The user to execute \s-1API\s0 calls as. You may find it more useful to use the \&\*(L"sudo\*(R" method instead. .PP See . .SS "rest_client" .IX Subsection "rest_client" An instance of GitLab::API::v4::RESTClient (or whatever \*(L"rest_client_class\*(R" is set to). Typically you will not be setting this as it defaults to a new instance and customization should not be necessary. .SS "rest_client_class" .IX Subsection "rest_client_class" The class to use when constructing the \*(L"rest_client\*(R". Defaults to GitLab::API::v4::RESTClient. .SH "UTILITY METHODS" .IX Header "UTILITY METHODS" .SS "paginator" .IX Subsection "paginator" .Vb 1 \& my $paginator = $api\->paginator( $method, @method_args ); \& \& my $members = $api\->paginator(\*(Aqgroup_members\*(Aq, $group_id); \& while (my $member = $members\->next()) { \& ... \& } \& \& my $users_pager = $api\->paginator(\*(Aqusers\*(Aq); \& while (my $users = $users_pager\->next_page()) { \& ... \& } \& \& my $all_open_issues = $api\->paginator( \& \*(Aqissues\*(Aq, \& $project_id, \& { state=>\*(Aqopened\*(Aq }, \& )\->all(); .Ve .PP Given a method who supports the \f(CW\*(C`page\*(C'\fR and \f(CW\*(C`per_page\*(C'\fR 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. .SS "sudo" .IX Subsection "sudo" .Vb 1 \& $api\->sudo(\*(Aqfred\*(Aq)\->create_issue(...); .Ve .PP Returns a new instance of GitLab::API::v4 with the \*(L"sudo_user\*(R" argument set. .PP See . .SH "API METHODS" .IX Header "API METHODS" .SS "Award Emoji" .IX Subsection "Award Emoji" See . .IP "issue_award_emojis" 4 .IX Item "issue_award_emojis" .Vb 5 \& my $award_emojis = $api\->issue_award_emojis( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/award_emoji\*(C'\fR and returns the decoded response content. .IP "merge_request_award_emojis" 4 .IX Item "merge_request_award_emojis" .Vb 5 \& my $award_emojis = $api\->merge_request_award_emojis( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/award_emoji\*(C'\fR and returns the decoded response content. .IP "snippet_award_emojis" 4 .IX Item "snippet_award_emojis" .Vb 5 \& my $award_emojis = $api\->snippet_award_emojis( \& $project_id, \& $merge_request_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_id/award_emoji\*(C'\fR and returns the decoded response content. .IP "issue_award_emoji" 4 .IX Item "issue_award_emoji" .Vb 5 \& my $award_emoji = $api\->issue_award_emoji( \& $project_id, \& $issue_iid, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "merge_request_award_emoji" 4 .IX Item "merge_request_award_emoji" .Vb 5 \& my $award_emoji = $api\->merge_request_award_emoji( \& $project_id, \& $merge_request_iid, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "snippet_award_emoji" 4 .IX Item "snippet_award_emoji" .Vb 5 \& my $award_emoji = $api\->snippet_award_emoji( \& $project_id, \& $snippet_id, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "create_issue_award_emoji" 4 .IX Item "create_issue_award_emoji" .Vb 5 \& my $award_emoji = $api\->create_issue_award_emoji( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/award_emoji\*(C'\fR and returns the decoded response content. .IP "create_merge_request_award_emoji" 4 .IX Item "create_merge_request_award_emoji" .Vb 5 \& my $award_emoji = $api\->create_merge_request_award_emoji( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/award_emoji\*(C'\fR and returns the decoded response content. .IP "create_snippet_award_emoji" 4 .IX Item "create_snippet_award_emoji" .Vb 4 \& my $award_emoji = $api\->create_snippet_award_emoji( \& $project_id, \& $snippet_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/award_emoji\*(C'\fR and returns the decoded response content. .IP "delete_issue_award_emoji" 4 .IX Item "delete_issue_award_emoji" .Vb 5 \& my $award_emoji = $api\->delete_issue_award_emoji( \& $project_id, \& $issue_id, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_id/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "delete_merge_request_award_emoji" 4 .IX Item "delete_merge_request_award_emoji" .Vb 5 \& my $award_emoji = $api\->delete_merge_request_award_emoji( \& $project_id, \& $merge_request_id, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_id/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "delete_snippet_award_emoji" 4 .IX Item "delete_snippet_award_emoji" .Vb 5 \& my $award_emoji = $api\->delete_snippet_award_emoji( \& $project_id, \& $snippet_id, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "issue_note_award_emojis" 4 .IX Item "issue_note_award_emojis" .Vb 5 \& my $award_emojis = $api\->issue_note_award_emojis( \& $project_id, \& $issue_iid, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji\*(C'\fR and returns the decoded response content. .IP "issue_note_award_emoji" 4 .IX Item "issue_note_award_emoji" .Vb 6 \& my $award_emoji = $api\->issue_note_award_emoji( \& $project_id, \& $issue_iid, \& $note_id, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "create_issue_note_award_emoji" 4 .IX Item "create_issue_note_award_emoji" .Vb 6 \& my $award_emoji = $api\->create_issue_note_award_emoji( \& $project_id, \& $issue_iid, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji\*(C'\fR and returns the decoded response content. .IP "delete_issue_note_award_emoji" 4 .IX Item "delete_issue_note_award_emoji" .Vb 6 \& my $award_emoji = $api\->delete_issue_note_award_emoji( \& $project_id, \& $issue_iid, \& $note_id, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes/:note_id/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "merge_request_note_award_emojis" 4 .IX Item "merge_request_note_award_emojis" .Vb 5 \& my $award_emojis = $api\->merge_request_note_award_emojis( \& $project_id, \& $merge_request_iid, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji\*(C'\fR and returns the decoded response content. .IP "merge_request_note_award_emoji" 4 .IX Item "merge_request_note_award_emoji" .Vb 6 \& my $award_emoji = $api\->merge_request_note_award_emoji( \& $project_id, \& $merge_request_iid, \& $note_id, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .IP "create_merge_request_note_award_emoji" 4 .IX Item "create_merge_request_note_award_emoji" .Vb 6 \& my $award_emoji = $api\->create_merge_request_note_award_emoji( \& $project_id, \& $merge_request_iid, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji\*(C'\fR and returns the decoded response content. .IP "delete_merge_request_note_award_emoji" 4 .IX Item "delete_merge_request_note_award_emoji" .Vb 6 \& my $award_emoji = $api\->delete_merge_request_note_award_emoji( \& $project_id, \& $merge_request_iid, \& $note_id, \& $award_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id/award_emoji/:award_id\*(C'\fR and returns the decoded response content. .SS "Branches" .IX Subsection "Branches" See . .IP "branches" 4 .IX Item "branches" .Vb 4 \& my $branches = $api\->branches( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/branches\*(C'\fR and returns the decoded response content. .IP "branch" 4 .IX Item "branch" .Vb 4 \& my $branch = $api\->branch( \& $project_id, \& $branch_name, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/branches/:branch_name\*(C'\fR and returns the decoded response content. .IP "create_branch" 4 .IX Item "create_branch" .Vb 4 \& my $branch = $api\->create_branch( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/branches\*(C'\fR and returns the decoded response content. .IP "delete_branch" 4 .IX Item "delete_branch" .Vb 4 \& $api\->delete_branch( \& $project_id, \& $branch_name, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/branches/:branch_name\*(C'\fR. .IP "delete_merged_branches" 4 .IX Item "delete_merged_branches" .Vb 3 \& $api\->delete_merged_branches( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/merged_branches\*(C'\fR. .SS "Broadcast Messages" .IX Subsection "Broadcast Messages" See . .IP "broadcast_messages" 4 .IX Item "broadcast_messages" .Vb 3 \& my $messages = $api\->broadcast_messages( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`broadcast_messages\*(C'\fR and returns the decoded response content. .IP "broadcast_message" 4 .IX Item "broadcast_message" .Vb 3 \& my $message = $api\->broadcast_message( \& $message_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`broadcast_messages/:message_id\*(C'\fR and returns the decoded response content. .IP "create_broadcast_message" 4 .IX Item "create_broadcast_message" .Vb 3 \& my $message = $api\->create_broadcast_message( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`broadcast_messages\*(C'\fR and returns the decoded response content. .IP "edit_broadcast_message" 4 .IX Item "edit_broadcast_message" .Vb 4 \& my $message = $api\->edit_broadcast_message( \& $message_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`broadcast_messages/:message_id\*(C'\fR and returns the decoded response content. .IP "delete_broadcast_message" 4 .IX Item "delete_broadcast_message" .Vb 3 \& $api\->delete_broadcast_message( \& $message_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`broadcast_messages/:message_id\*(C'\fR. .SS "Project-level Variables" .IX Subsection "Project-level Variables" See . .IP "project_variables" 4 .IX Item "project_variables" .Vb 4 \& my $variables = $api\->project_variables( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/variables\*(C'\fR and returns the decoded response content. .IP "project_variable" 4 .IX Item "project_variable" .Vb 4 \& my $variable = $api\->project_variable( \& $project_id, \& $variable_key, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/variables/:variable_key\*(C'\fR and returns the decoded response content. .IP "create_project_variable" 4 .IX Item "create_project_variable" .Vb 4 \& my $variable = $api\->create_project_variable( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/variables\*(C'\fR and returns the decoded response content. .IP "edit_project_variable" 4 .IX Item "edit_project_variable" .Vb 5 \& my $variable = $api\->edit_project_variable( \& $project_id, \& $variable_key, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/variables/:variable_key\*(C'\fR and returns the decoded response content. .IP "delete_project_variable" 4 .IX Item "delete_project_variable" .Vb 4 \& $api\->delete_project_variable( \& $project_id, \& $variable_key, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/variables/:variable_key\*(C'\fR. .SS "Group-level Variables" .IX Subsection "Group-level Variables" See . .IP "group_variables" 4 .IX Item "group_variables" .Vb 4 \& my $variables = $api\->group_variables( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/variables\*(C'\fR and returns the decoded response content. .IP "group_variable" 4 .IX Item "group_variable" .Vb 4 \& my $variable = $api\->group_variable( \& $group_id, \& $variable_key, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/variables/:variable_key\*(C'\fR and returns the decoded response content. .IP "create_group_variable" 4 .IX Item "create_group_variable" .Vb 4 \& my $variable = $api\->create_group_variable( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/variables\*(C'\fR and returns the decoded response content. .IP "edit_group_variable" 4 .IX Item "edit_group_variable" .Vb 5 \& my $variable = $api\->edit_group_variable( \& $group_id, \& $variable_key, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id/variables/:variable_key\*(C'\fR and returns the decoded response content. .IP "delete_group_variable" 4 .IX Item "delete_group_variable" .Vb 4 \& $api\->delete_group_variable( \& $group_id, \& $variable_key, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id/variables/:variable_key\*(C'\fR. .SS "Snippets" .IX Subsection "Snippets" See . .IP "snippets" 4 .IX Item "snippets" .Vb 1 \& my $snippets = $api\->snippets(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`snippets\*(C'\fR and returns the decoded response content. .IP "snippet" 4 .IX Item "snippet" .Vb 3 \& my $snippet = $api\->snippet( \& $snippet_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`snippets/:snippet_id\*(C'\fR and returns the decoded response content. .IP "create_snippet" 4 .IX Item "create_snippet" .Vb 3 \& my $snippet = $api\->create_snippet( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`snippets\*(C'\fR and returns the decoded response content. .IP "edit_snippet" 4 .IX Item "edit_snippet" .Vb 4 \& my $snippet = $api\->edit_snippet( \& $snippet_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`snippets/:snippet_id\*(C'\fR and returns the decoded response content. .IP "delete_snippet" 4 .IX Item "delete_snippet" .Vb 3 \& $api\->delete_snippet( \& $snippet_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`snippets/:snippet_id\*(C'\fR. .IP "public_snippets" 4 .IX Item "public_snippets" .Vb 3 \& my $snippets = $api\->public_snippets( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`snippets/public\*(C'\fR and returns the decoded response content. .IP "snippet_user_agent_detail" 4 .IX Item "snippet_user_agent_detail" .Vb 3 \& my $user_agent = $api\->snippet_user_agent_detail( \& $snippet_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`snippets/:snippet_id/user_agent_detail\*(C'\fR and returns the decoded response content. .SS "Commits" .IX Subsection "Commits" See . .IP "commits" 4 .IX Item "commits" .Vb 4 \& my $commits = $api\->commits( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/commits\*(C'\fR and returns the decoded response content. .IP "create_commit" 4 .IX Item "create_commit" .Vb 4 \& my $commit = $api\->create_commit( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/commits\*(C'\fR and returns the decoded response content. .IP "commit" 4 .IX Item "commit" .Vb 4 \& my $commit = $api\->commit( \& $project_id, \& $commit_sha, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/commits/:commit_sha\*(C'\fR and returns the decoded response content. .IP "cherry_pick_commit" 4 .IX Item "cherry_pick_commit" .Vb 5 \& my $commit = $api\->cherry_pick_commit( \& $project_id, \& $commit_sha, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/commits/:commit_sha/cherry_pick\*(C'\fR and returns the decoded response content. .IP "commit_diff" 4 .IX Item "commit_diff" .Vb 5 \& my $diff = $api\->commit_diff( \& $project_id, \& $commit_sha, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/commits/:commit_sha/diff\*(C'\fR and returns the decoded response content. .IP "commit_comments" 4 .IX Item "commit_comments" .Vb 5 \& my $comments = $api\->commit_comments( \& $project_id, \& $commit_sha, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/commits/:commit_sha/comments\*(C'\fR and returns the decoded response content. .IP "create_commit_comment" 4 .IX Item "create_commit_comment" .Vb 5 \& $api\->create_commit_comment( \& $project_id, \& $commit_sha, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/commits/:commit_sha/comments\*(C'\fR. .IP "commit_statuses" 4 .IX Item "commit_statuses" .Vb 5 \& my $build_statuses = $api\->commit_statuses( \& $project_id, \& $commit_sha, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/commits/:commit_sha/statuses\*(C'\fR and returns the decoded response content. .IP "create_commit_status" 4 .IX Item "create_commit_status" .Vb 5 \& my $build_status = $api\->create_commit_status( \& $project_id, \& $commit_sha, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/statuses/:commit_sha\*(C'\fR and returns the decoded response content. .SS "Custom Attributes" .IX Subsection "Custom Attributes" See . .IP "custom_user_attributes" 4 .IX Item "custom_user_attributes" .Vb 3 \& my $attributes = $api\->custom_user_attributes( \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/custom_attributes\*(C'\fR and returns the decoded response content. .IP "custom_group_attributes" 4 .IX Item "custom_group_attributes" .Vb 3 \& my $attributes = $api\->custom_group_attributes( \& $group_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/custom_attributes\*(C'\fR and returns the decoded response content. .IP "custom_project_attributes" 4 .IX Item "custom_project_attributes" .Vb 3 \& my $attributes = $api\->custom_project_attributes( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/custom_attributes\*(C'\fR and returns the decoded response content. .IP "custom_user_attribute" 4 .IX Item "custom_user_attribute" .Vb 4 \& my $attribute = $api\->custom_user_attribute( \& $user_id, \& $attribute_key, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/custom_attributes/:attribute_key\*(C'\fR and returns the decoded response content. .IP "custom_group_attribute" 4 .IX Item "custom_group_attribute" .Vb 4 \& my $attribute = $api\->custom_group_attribute( \& $group_id, \& $attribute_key, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/custom_attributes/:attribute_key\*(C'\fR and returns the decoded response content. .IP "custom_project_attribute" 4 .IX Item "custom_project_attribute" .Vb 4 \& my $attribute = $api\->custom_project_attribute( \& $project_id, \& $attribute_key, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/custom_attributes/:attribute_key\*(C'\fR and returns the decoded response content. .IP "set_custom_user_attribute" 4 .IX Item "set_custom_user_attribute" .Vb 5 \& my $attribute = $api\->set_custom_user_attribute( \& $user_id, \& $attribute_key, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`users/:user_id/custom_attributes/:attribute_key\*(C'\fR and returns the decoded response content. .IP "set_custom_group_attribute" 4 .IX Item "set_custom_group_attribute" .Vb 5 \& my $attribute = $api\->set_custom_group_attribute( \& $group_id, \& $attribute_key, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id/custom_attributes/:attribute_key\*(C'\fR and returns the decoded response content. .IP "set_custom_project_attribute" 4 .IX Item "set_custom_project_attribute" .Vb 5 \& my $attribute = $api\->set_custom_project_attribute( \& $project_id, \& $attribute_key, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/custom_attributes/:attribute_key\*(C'\fR and returns the decoded response content. .IP "delete_custom_user_attribute" 4 .IX Item "delete_custom_user_attribute" .Vb 4 \& $api\->delete_custom_user_attribute( \& $user_id, \& $attribute_key, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`users/:user_id/custom_attributes/:attribute_key\*(C'\fR. .IP "delete_custom_group_attribute" 4 .IX Item "delete_custom_group_attribute" .Vb 4 \& $api\->delete_custom_group_attribute( \& $group_id, \& $attribute_key, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id/custom_attributes/:attribute_key\*(C'\fR. .IP "delete_custom_project_attribute" 4 .IX Item "delete_custom_project_attribute" .Vb 4 \& $api\->delete_custom_project_attribute( \& $project_id, \& $attribute_key, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/custom_attributes/:attribute_key\*(C'\fR. .SS "Deployments" .IX Subsection "Deployments" See . .IP "deployments" 4 .IX Item "deployments" .Vb 4 \& my $deployments = $api\->deployments( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/deployments\*(C'\fR and returns the decoded response content. .IP "deployment" 4 .IX Item "deployment" .Vb 4 \& my $deployment = $api\->deployment( \& $project_id, \& $deployment_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/deployments/:deployment_id\*(C'\fR and returns the decoded response content. .SS "Deploy Keys" .IX Subsection "Deploy Keys" See . .IP "all_deploy_keys" 4 .IX Item "all_deploy_keys" .Vb 3 \& my $keys = $api\->all_deploy_keys( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`deploy_keys\*(C'\fR and returns the decoded response content. .IP "deploy_keys" 4 .IX Item "deploy_keys" .Vb 4 \& my $keys = $api\->deploy_keys( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/deploy_keys\*(C'\fR and returns the decoded response content. .IP "deploy_key" 4 .IX Item "deploy_key" .Vb 4 \& my $key = $api\->deploy_key( \& $project_id, \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/deploy_keys/:key_id\*(C'\fR and returns the decoded response content. .IP "create_deploy_key" 4 .IX Item "create_deploy_key" .Vb 4 \& my $key = $api\->create_deploy_key( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/deploy_keys\*(C'\fR and returns the decoded response content. .IP "delete_deploy_key" 4 .IX Item "delete_deploy_key" .Vb 4 \& $api\->delete_deploy_key( \& $project_id, \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/deploy_keys/:key_id\*(C'\fR. .IP "enable_deploy_key" 4 .IX Item "enable_deploy_key" .Vb 4 \& my $key = $api\->enable_deploy_key( \& $project_id, \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/deploy_keys/:key_id/enable\*(C'\fR and returns the decoded response content. .SS "Environments" .IX Subsection "Environments" See . .IP "environments" 4 .IX Item "environments" .Vb 4 \& my $environments = $api\->environments( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/environments\*(C'\fR and returns the decoded response content. .IP "create_environment" 4 .IX Item "create_environment" .Vb 4 \& my $environment = $api\->create_environment( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/environments\*(C'\fR and returns the decoded response content. .IP "edit_environment" 4 .IX Item "edit_environment" .Vb 5 \& my $environment = $api\->edit_environment( \& $project_id, \& $environments_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/environments/:environments_id\*(C'\fR and returns the decoded response content. .IP "delete_environment" 4 .IX Item "delete_environment" .Vb 4 \& $api\->delete_environment( \& $project_id, \& $environment_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/environments/:environment_id\*(C'\fR. .IP "stop_environment" 4 .IX Item "stop_environment" .Vb 4 \& my $environment = $api\->stop_environment( \& $project_id, \& $environment_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/environments/:environment_id/stop\*(C'\fR and returns the decoded response content. .SS "Events" .IX Subsection "Events" See . .IP "all_events" 4 .IX Item "all_events" .Vb 3 \& my $events = $api\->all_events( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`events\*(C'\fR and returns the decoded response content. .IP "user_events" 4 .IX Item "user_events" .Vb 4 \& my $events = $api\->user_events( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/events\*(C'\fR and returns the decoded response content. .IP "project_events" 4 .IX Item "project_events" .Vb 4 \& my $events = $api\->project_events( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/events\*(C'\fR and returns the decoded response content. .SS "Feature flags" .IX Subsection "Feature flags" See . .IP "features" 4 .IX Item "features" .Vb 1 \& my $features = $api\->features(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`features\*(C'\fR and returns the decoded response content. .IP "set_feature" 4 .IX Item "set_feature" .Vb 4 \& my $feature = $api\->set_feature( \& $name, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`features/:name\*(C'\fR and returns the decoded response content. .SS "Gitignores" .IX Subsection "Gitignores" See . .IP "gitignores_templates" 4 .IX Item "gitignores_templates" .Vb 3 \& my $templates = $api\->gitignores_templates( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`templates/gitignores\*(C'\fR and returns the decoded response content. .IP "gitignores_template" 4 .IX Item "gitignores_template" .Vb 3 \& my $template = $api\->gitignores_template( \& $template_key, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`templates/gitignores/:template_key\*(C'\fR and returns the decoded response content. .SS "GitLab \s-1CI\s0 YMLs" .IX Subsection "GitLab CI YMLs" See . .IP "gitlab_ci_ymls_templates" 4 .IX Item "gitlab_ci_ymls_templates" .Vb 3 \& my $templates = $api\->gitlab_ci_ymls_templates( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`templates/gitlab_ci_ymls\*(C'\fR and returns the decoded response content. .IP "gitlab_ci_ymls_template" 4 .IX Item "gitlab_ci_ymls_template" .Vb 3 \& my $template = $api\->gitlab_ci_ymls_template( \& $template_key, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`templates/gitlab_ci_ymls/:template_key\*(C'\fR and returns the decoded response content. .SS "Groups" .IX Subsection "Groups" See . .IP "groups" 4 .IX Item "groups" .Vb 3 \& my $groups = $api\->groups( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups\*(C'\fR and returns the decoded response content. .IP "group_subgroups" 4 .IX Item "group_subgroups" .Vb 4 \& my $subgroups = $api\->group_subgroups( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/subgroups\*(C'\fR and returns the decoded response content. .IP "group_projects" 4 .IX Item "group_projects" .Vb 4 \& my $projects = $api\->group_projects( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/projects\*(C'\fR and returns the decoded response content. .IP "group" 4 .IX Item "group" .Vb 4 \& my $group = $api\->group( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id\*(C'\fR and returns the decoded response content. .IP "create_group" 4 .IX Item "create_group" .Vb 3 \& $api\->create_group( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups\*(C'\fR. .IP "transfer_project_to_group" 4 .IX Item "transfer_project_to_group" .Vb 4 \& $api\->transfer_project_to_group( \& $group_id, \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/projects/:project_id\*(C'\fR. .IP "edit_group" 4 .IX Item "edit_group" .Vb 4 \& my $group = $api\->edit_group( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id\*(C'\fR and returns the decoded response content. .IP "delete_group" 4 .IX Item "delete_group" .Vb 3 \& $api\->delete_group( \& $group_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id\*(C'\fR. .IP "sync_group_with_ldap" 4 .IX Item "sync_group_with_ldap" .Vb 3 \& $api\->sync_group_with_ldap( \& $group_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/ldap_sync\*(C'\fR. .IP "create_ldap_group_link" 4 .IX Item "create_ldap_group_link" .Vb 4 \& $api\->create_ldap_group_link( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/ldap_group_links\*(C'\fR. .IP "delete_ldap_group_link" 4 .IX Item "delete_ldap_group_link" .Vb 4 \& $api\->delete_ldap_group_link( \& $group_id, \& $cn, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id/ldap_group_links/:cn\*(C'\fR. .IP "delete_ldap_provider_group_link" 4 .IX Item "delete_ldap_provider_group_link" .Vb 5 \& $api\->delete_ldap_provider_group_link( \& $group_id, \& $provider, \& $cn, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id/ldap_group_links/:provider/:cn\*(C'\fR. .SS "Group access requests" .IX Subsection "Group access requests" See . .IP "group_access_requests" 4 .IX Item "group_access_requests" .Vb 4 \& my $requests = $api\->group_access_requests( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/access_requests\*(C'\fR and returns the decoded response content. .IP "request_group_access" 4 .IX Item "request_group_access" .Vb 3 \& my $request = $api\->request_group_access( \& $group_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/access_requests\*(C'\fR and returns the decoded response content. .IP "approve_group_access" 4 .IX Item "approve_group_access" .Vb 4 \& my $request = $api\->approve_group_access( \& $group_id, \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id/access_requests/:user_id/approve\*(C'\fR and returns the decoded response content. .IP "deny_group_access" 4 .IX Item "deny_group_access" .Vb 4 \& $api\->deny_group_access( \& $group_id, \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id/access_requests/:user_id\*(C'\fR. .SS "Group badges" .IX Subsection "Group badges" See . .IP "group_badges" 4 .IX Item "group_badges" .Vb 3 \& my $badges = $api\->group_badges( \& $group_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/badges\*(C'\fR and returns the decoded response content. .IP "group_badge" 4 .IX Item "group_badge" .Vb 4 \& my $badge = $api\->group_badge( \& $group_id, \& $badge_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/badges/:badge_id\*(C'\fR and returns the decoded response content. .IP "create_group_badge" 4 .IX Item "create_group_badge" .Vb 4 \& my $badge = $api\->create_group_badge( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/badges\*(C'\fR and returns the decoded response content. .IP "edit_group_badge" 4 .IX Item "edit_group_badge" .Vb 5 \& my $badge = $api\->edit_group_badge( \& $group_id, \& $badge_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id/badges/:badge_id\*(C'\fR and returns the decoded response content. .IP "delete_group_badge" 4 .IX Item "delete_group_badge" .Vb 4 \& $api\->delete_group_badge( \& $group_id, \& $badge_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id/badges/:badge_id\*(C'\fR. .IP "preview_group_badge" 4 .IX Item "preview_group_badge" .Vb 4 \& my $preview = $api\->preview_group_badge( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/badges/render\*(C'\fR and returns the decoded response content. .SS "Group members" .IX Subsection "Group members" See . .IP "group_members" 4 .IX Item "group_members" .Vb 4 \& my $members = $api\->group_members( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/members\*(C'\fR and returns the decoded response content. .IP "all_group_members" 4 .IX Item "all_group_members" .Vb 4 \& my $members = $api\->all_group_members( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/members/all\*(C'\fR and returns the decoded response content. .IP "group_member" 4 .IX Item "group_member" .Vb 4 \& my $member = $api\->group_member( \& $project_id, \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:project_id/members/:user_id\*(C'\fR and returns the decoded response content. .IP "add_group_member" 4 .IX Item "add_group_member" .Vb 4 \& my $member = $api\->add_group_member( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/members\*(C'\fR and returns the decoded response content. .IP "update_group_member" 4 .IX Item "update_group_member" .Vb 5 \& my $member = $api\->update_group_member( \& $group_id, \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id/members/:user_id\*(C'\fR and returns the decoded response content. .IP "remove_group_member" 4 .IX Item "remove_group_member" .Vb 4 \& $api\->remove_group_member( \& $group_id, \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id/members/:user_id\*(C'\fR. .SS "Issues" .IX Subsection "Issues" See . .IP "global_issues" 4 .IX Item "global_issues" .Vb 3 \& my $issues = $api\->global_issues( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`issues\*(C'\fR and returns the decoded response content. .IP "group_issues" 4 .IX Item "group_issues" .Vb 4 \& my $issues = $api\->group_issues( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/issues\*(C'\fR and returns the decoded response content. .IP "issues" 4 .IX Item "issues" .Vb 4 \& my $issues = $api\->issues( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues\*(C'\fR and returns the decoded response content. .IP "issue" 4 .IX Item "issue" .Vb 4 \& my $issue = $api\->issue( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid\*(C'\fR and returns the decoded response content. .IP "create_issue" 4 .IX Item "create_issue" .Vb 4 \& my $issue = $api\->create_issue( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues\*(C'\fR and returns the decoded response content. .IP "edit_issue" 4 .IX Item "edit_issue" .Vb 5 \& my $issue = $api\->edit_issue( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid\*(C'\fR and returns the decoded response content. .IP "delete_issue" 4 .IX Item "delete_issue" .Vb 4 \& $api\->delete_issue( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid\*(C'\fR. .IP "move_issue" 4 .IX Item "move_issue" .Vb 5 \& my $issue = $api\->move_issue( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/move\*(C'\fR and returns the decoded response content. .IP "subscribe_to_issue" 4 .IX Item "subscribe_to_issue" .Vb 4 \& my $issue = $api\->subscribe_to_issue( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/subscribe\*(C'\fR and returns the decoded response content. .IP "unsubscribe_from_issue" 4 .IX Item "unsubscribe_from_issue" .Vb 4 \& my $issue = $api\->unsubscribe_from_issue( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/unsubscribe\*(C'\fR and returns the decoded response content. .IP "create_issue_todo" 4 .IX Item "create_issue_todo" .Vb 4 \& my $todo = $api\->create_issue_todo( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/todo\*(C'\fR and returns the decoded response content. .IP "set_issue_time_estimate" 4 .IX Item "set_issue_time_estimate" .Vb 5 \& my $tracking = $api\->set_issue_time_estimate( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/time_estimate\*(C'\fR and returns the decoded response content. .IP "reset_issue_time_estimate" 4 .IX Item "reset_issue_time_estimate" .Vb 4 \& my $tracking = $api\->reset_issue_time_estimate( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/reset_time_estimate\*(C'\fR and returns the decoded response content. .IP "add_issue_spent_time" 4 .IX Item "add_issue_spent_time" .Vb 5 \& my $tracking = $api\->add_issue_spent_time( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/add_spent_time\*(C'\fR and returns the decoded response content. .IP "reset_issue_spent_time" 4 .IX Item "reset_issue_spent_time" .Vb 4 \& my $tracking = $api\->reset_issue_spent_time( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/reset_spent_time\*(C'\fR and returns the decoded response content. .IP "issue_time_stats" 4 .IX Item "issue_time_stats" .Vb 4 \& my $tracking = $api\->issue_time_stats( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/time_stats\*(C'\fR and returns the decoded response content. .IP "issue_closed_by" 4 .IX Item "issue_closed_by" .Vb 4 \& my $merge_requests = $api\->issue_closed_by( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/closed_by\*(C'\fR and returns the decoded response content. .IP "issue_user_agent_detail" 4 .IX Item "issue_user_agent_detail" .Vb 4 \& my $user_agent = $api\->issue_user_agent_detail( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/user_agent_detail\*(C'\fR and returns the decoded response content. .SS "Issue Boards" .IX Subsection "Issue Boards" See . .IP "project_boards" 4 .IX Item "project_boards" .Vb 4 \& my $boards = $api\->project_boards( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/boards\*(C'\fR and returns the decoded response content. .IP "project_board_lists" 4 .IX Item "project_board_lists" .Vb 5 \& my $lists = $api\->project_board_lists( \& $project_id, \& $board_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/boards/:board_id/lists\*(C'\fR and returns the decoded response content. .IP "project_board_list" 4 .IX Item "project_board_list" .Vb 5 \& my $list = $api\->project_board_list( \& $project_id, \& $board_id, \& $list_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/boards/:board_id/lists/:list_id\*(C'\fR and returns the decoded response content. .IP "create_project_board_list" 4 .IX Item "create_project_board_list" .Vb 5 \& my $list = $api\->create_project_board_list( \& $project_id, \& $board_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/boards/:board_id/lists\*(C'\fR and returns the decoded response content. .IP "edit_project_board_list" 4 .IX Item "edit_project_board_list" .Vb 6 \& my $list = $api\->edit_project_board_list( \& $project_id, \& $board_id, \& $list_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/boards/:board_id/lists/:list_id\*(C'\fR and returns the decoded response content. .IP "delete_project_board_list" 4 .IX Item "delete_project_board_list" .Vb 5 \& $api\->delete_project_board_list( \& $project_id, \& $board_id, \& $list_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/boards/:board_id/lists/:list_id\*(C'\fR. .SS "Group Issue Boards" .IX Subsection "Group Issue Boards" See . .IP "group_boards" 4 .IX Item "group_boards" .Vb 3 \& my $boards = $api\->group_boards( \& $group_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/boards\*(C'\fR and returns the decoded response content. .IP "group_board" 4 .IX Item "group_board" .Vb 4 \& my $board = $api\->group_board( \& $group_id, \& $board_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/boards/:board_id\*(C'\fR and returns the decoded response content. .IP "group_board_lists" 4 .IX Item "group_board_lists" .Vb 4 \& my $lists = $api\->group_board_lists( \& $group_id, \& $board_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/boards/:board_id/lists\*(C'\fR and returns the decoded response content. .IP "group_board_list" 4 .IX Item "group_board_list" .Vb 5 \& my $list = $api\->group_board_list( \& $group_id, \& $board_id, \& $list_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/boards/:board_id/lists/:list_id\*(C'\fR and returns the decoded response content. .IP "create_group_board_list" 4 .IX Item "create_group_board_list" .Vb 5 \& my $list = $api\->create_group_board_list( \& $group_id, \& $board_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/boards/:board_id/lists\*(C'\fR and returns the decoded response content. .IP "edit_group_board_list" 4 .IX Item "edit_group_board_list" .Vb 6 \& my $list = $api\->edit_group_board_list( \& $group_id, \& $board_id, \& $list_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id/boards/:board_id/lists/:list_id\*(C'\fR and returns the decoded response content. .IP "delete_group_board_list" 4 .IX Item "delete_group_board_list" .Vb 5 \& $api\->delete_group_board_list( \& $group_id, \& $board_id, \& $list_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`groups/:group_id/boards/:board_id/lists/:list_id\*(C'\fR. .SS "Jobs" .IX Subsection "Jobs" See . .IP "jobs" 4 .IX Item "jobs" .Vb 4 \& my $jobs = $api\->jobs( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs\*(C'\fR and returns the decoded response content. .IP "pipeline_jobs" 4 .IX Item "pipeline_jobs" .Vb 5 \& my $jobs = $api\->pipeline_jobs( \& $project_id, \& $pipeline_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipelines/:pipeline_id/jobs\*(C'\fR and returns the decoded response content. .IP "job" 4 .IX Item "job" .Vb 4 \& my $job = $api\->job( \& $project_id, \& $job_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id\*(C'\fR and returns the decoded response content. .IP "job_artifacts" 4 .IX Item "job_artifacts" .Vb 4 \& my $artifacts = $api\->job_artifacts( \& $project_id, \& $job_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id/artifacts\*(C'\fR and returns the decoded response content. .IP "job_artifacts_archive" 4 .IX Item "job_artifacts_archive" .Vb 5 \& my $archive = $api\->job_artifacts_archive( \& $project_id, \& $ref_name, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/artifacts/:ref_name/download\*(C'\fR and returns the decoded response content. .IP "job_artifacts_file" 4 .IX Item "job_artifacts_file" .Vb 5 \& my $file = $api\->job_artifacts_file( \& $project_id, \& $job_id, \& $artifact_path, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id/artifacts/:artifact_path\*(C'\fR and returns the decoded response content. .IP "job_trace_file" 4 .IX Item "job_trace_file" .Vb 4 \& my $file = $api\->job_trace_file( \& $project_id, \& $job_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id/trace\*(C'\fR and returns the decoded response content. .IP "cancel_job" 4 .IX Item "cancel_job" .Vb 4 \& my $job = $api\->cancel_job( \& $project_id, \& $job_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id/cancel\*(C'\fR and returns the decoded response content. .IP "retry_job" 4 .IX Item "retry_job" .Vb 4 \& my $job = $api\->retry_job( \& $project_id, \& $job_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id/retry\*(C'\fR and returns the decoded response content. .IP "erase_job" 4 .IX Item "erase_job" .Vb 4 \& my $job = $api\->erase_job( \& $project_id, \& $job_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id/erase\*(C'\fR and returns the decoded response content. .IP "keep_job_artifacts" 4 .IX Item "keep_job_artifacts" .Vb 4 \& my $job = $api\->keep_job_artifacts( \& $project_id, \& $job_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id/artifacts/keep\*(C'\fR and returns the decoded response content. .IP "play_job" 4 .IX Item "play_job" .Vb 4 \& my $job = $api\->play_job( \& $project_id, \& $job_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/jobs/:job_id/play\*(C'\fR and returns the decoded response content. .SS "Keys" .IX Subsection "Keys" See . .IP "key" 4 .IX Item "key" .Vb 3 \& my $key = $api\->key( \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`keys/:key_id\*(C'\fR and returns the decoded response content. .SS "Labels" .IX Subsection "Labels" See . .IP "labels" 4 .IX Item "labels" .Vb 4 \& my $labels = $api\->labels( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/labels\*(C'\fR and returns the decoded response content. .IP "create_label" 4 .IX Item "create_label" .Vb 4 \& my $label = $api\->create_label( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/labels\*(C'\fR and returns the decoded response content. .IP "delete_label" 4 .IX Item "delete_label" .Vb 4 \& $api\->delete_label( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/labels\*(C'\fR. .IP "edit_label" 4 .IX Item "edit_label" .Vb 4 \& my $label = $api\->edit_label( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/labels\*(C'\fR and returns the decoded response content. .IP "subscribe_to_label" 4 .IX Item "subscribe_to_label" .Vb 4 \& my $label = $api\->subscribe_to_label( \& $project_id, \& $label_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/labels/:label_id/subscribe\*(C'\fR and returns the decoded response content. .IP "unsubscribe_from_label" 4 .IX Item "unsubscribe_from_label" .Vb 4 \& $api\->unsubscribe_from_label( \& $project_id, \& $label_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/labels/:label_id/unsubscribe\*(C'\fR. .SS "Markdown" .IX Subsection "Markdown" See . .IP "markdown" 4 .IX Item "markdown" .Vb 3 \& my $html = $api\->markdown( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`markdown\*(C'\fR and returns the decoded response content. .SS "Merge requests" .IX Subsection "Merge requests" See . .IP "global_merge_requests" 4 .IX Item "global_merge_requests" .Vb 3 \& my $merge_requests = $api\->global_merge_requests( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`merge_requests\*(C'\fR and returns the decoded response content. .IP "merge_requests" 4 .IX Item "merge_requests" .Vb 4 \& my $merge_requests = $api\->merge_requests( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests\*(C'\fR and returns the decoded response content. .IP "merge_request" 4 .IX Item "merge_request" .Vb 4 \& my $merge_request = $api\->merge_request( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid\*(C'\fR and returns the decoded response content. .IP "merge_request_commits" 4 .IX Item "merge_request_commits" .Vb 4 \& my $commits = $api\->merge_request_commits( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/commits\*(C'\fR and returns the decoded response content. .IP "merge_request_with_changes" 4 .IX Item "merge_request_with_changes" .Vb 4 \& my $merge_request = $api\->merge_request_with_changes( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/changes\*(C'\fR and returns the decoded response content. .IP "create_merge_request" 4 .IX Item "create_merge_request" .Vb 4 \& my $merge_request = $api\->create_merge_request( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests\*(C'\fR and returns the decoded response content. .IP "edit_merge_request" 4 .IX Item "edit_merge_request" .Vb 5 \& my $merge_request = $api\->edit_merge_request( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid\*(C'\fR and returns the decoded response content. .IP "delete_merge_request" 4 .IX Item "delete_merge_request" .Vb 4 \& $api\->delete_merge_request( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid\*(C'\fR. .IP "accept_merge_request" 4 .IX Item "accept_merge_request" .Vb 5 \& my $merge_request = $api\->accept_merge_request( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/merge\*(C'\fR and returns the decoded response content. .IP "cancel_merge_when_pipeline_succeeds" 4 .IX Item "cancel_merge_when_pipeline_succeeds" .Vb 4 \& my $merge_request = $api\->cancel_merge_when_pipeline_succeeds( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/cancel_merge_when_pipeline_succeeds\*(C'\fR and returns the decoded response content. .IP "merge_request_closes_issues" 4 .IX Item "merge_request_closes_issues" .Vb 5 \& my $issues = $api\->merge_request_closes_issues( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/closes_issues\*(C'\fR and returns the decoded response content. .IP "subscribe_to_merge_request" 4 .IX Item "subscribe_to_merge_request" .Vb 4 \& my $merge_request = $api\->subscribe_to_merge_request( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/subscribe\*(C'\fR and returns the decoded response content. .IP "unsubscribe_from_merge_request" 4 .IX Item "unsubscribe_from_merge_request" .Vb 4 \& my $merge_request = $api\->unsubscribe_from_merge_request( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/unsubscribe\*(C'\fR and returns the decoded response content. .IP "create_merge_request_todo" 4 .IX Item "create_merge_request_todo" .Vb 4 \& my $todo = $api\->create_merge_request_todo( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/todo\*(C'\fR and returns the decoded response content. .IP "merge_request_diff_versions" 4 .IX Item "merge_request_diff_versions" .Vb 4 \& my $versions = $api\->merge_request_diff_versions( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/versions\*(C'\fR and returns the decoded response content. .IP "merge_request_diff_version" 4 .IX Item "merge_request_diff_version" .Vb 5 \& my $version = $api\->merge_request_diff_version( \& $project_id, \& $merge_request_iid, \& $version_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/versions/:version_id\*(C'\fR and returns the decoded response content. .IP "set_merge_request_time_estimate" 4 .IX Item "set_merge_request_time_estimate" .Vb 5 \& my $tracking = $api\->set_merge_request_time_estimate( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/time_estimate\*(C'\fR and returns the decoded response content. .IP "reset_merge_request_time_estimate" 4 .IX Item "reset_merge_request_time_estimate" .Vb 4 \& my $tracking = $api\->reset_merge_request_time_estimate( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/reset_time_estimate\*(C'\fR and returns the decoded response content. .IP "add_merge_request_spent_time" 4 .IX Item "add_merge_request_spent_time" .Vb 5 \& my $tracking = $api\->add_merge_request_spent_time( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/add_spent_time\*(C'\fR and returns the decoded response content. .IP "reset_merge_request_spent_time" 4 .IX Item "reset_merge_request_spent_time" .Vb 4 \& my $tracking = $api\->reset_merge_request_spent_time( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/reset_spent_time\*(C'\fR and returns the decoded response content. .IP "merge_request_time_stats" 4 .IX Item "merge_request_time_stats" .Vb 4 \& my $tracking = $api\->merge_request_time_stats( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/time_stats\*(C'\fR and returns the decoded response content. .SS "Milestones" .IX Subsection "Milestones" See . .IP "project_milestones" 4 .IX Item "project_milestones" .Vb 4 \& my $milestones = $api\->project_milestones( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/milestones\*(C'\fR and returns the decoded response content. .IP "project_milestone" 4 .IX Item "project_milestone" .Vb 4 \& my $milestone = $api\->project_milestone( \& $project_id, \& $milestone_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/milestones/:milestone_id\*(C'\fR and returns the decoded response content. .IP "create_project_milestone" 4 .IX Item "create_project_milestone" .Vb 4 \& my $milestone = $api\->create_project_milestone( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/milestones\*(C'\fR and returns the decoded response content. .IP "edit_project_milestone" 4 .IX Item "edit_project_milestone" .Vb 5 \& my $milestone = $api\->edit_project_milestone( \& $project_id, \& $milestone_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/milestones/:milestone_id\*(C'\fR and returns the decoded response content. .IP "project_milestone_issues" 4 .IX Item "project_milestone_issues" .Vb 5 \& my $issues = $api\->project_milestone_issues( \& $project_id, \& $milestone_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/milestones/:milestone_id/issues\*(C'\fR and returns the decoded response content. .IP "project_milestone_merge_requests" 4 .IX Item "project_milestone_merge_requests" .Vb 5 \& my $merge_requests = $api\->project_milestone_merge_requests( \& $project_id, \& $milestone_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/milestones/:milestone_id/merge_requests\*(C'\fR and returns the decoded response content. .SS "Group milestones" .IX Subsection "Group milestones" See . .IP "group_milestones" 4 .IX Item "group_milestones" .Vb 4 \& my $milestones = $api\->group_milestones( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/milestones\*(C'\fR and returns the decoded response content. .IP "group_milestone" 4 .IX Item "group_milestone" .Vb 4 \& my $milestone = $api\->group_milestone( \& $group_id, \& $milestone_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/milestones/:milestone_id\*(C'\fR and returns the decoded response content. .IP "create_group_milestone" 4 .IX Item "create_group_milestone" .Vb 4 \& my $milestone = $api\->create_group_milestone( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`groups/:group_id/milestones\*(C'\fR and returns the decoded response content. .IP "edit_group_milestone" 4 .IX Item "edit_group_milestone" .Vb 5 \& my $milestone = $api\->edit_group_milestone( \& $group_id, \& $milestone_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id/milestones/:milestone_id\*(C'\fR and returns the decoded response content. .IP "group_milestone_issues" 4 .IX Item "group_milestone_issues" .Vb 5 \& my $issues = $api\->group_milestone_issues( \& $group_id, \& $milestone_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/milestones/:milestone_id/issues\*(C'\fR and returns the decoded response content. .IP "group_milestone_merge_requests" 4 .IX Item "group_milestone_merge_requests" .Vb 5 \& my $merge_requests = $api\->group_milestone_merge_requests( \& $group_id, \& $milestone_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/milestones/:milestone_id/merge_requests\*(C'\fR and returns the decoded response content. .SS "Namespaces" .IX Subsection "Namespaces" See . .IP "namespaces" 4 .IX Item "namespaces" .Vb 3 \& my $namespaces = $api\->namespaces( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`namespaces\*(C'\fR and returns the decoded response content. .IP "namespace" 4 .IX Item "namespace" .Vb 3 \& my $namespace = $api\->namespace( \& $namespace_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`namespaces/:namespace_id\*(C'\fR and returns the decoded response content. .SS "Notes" .IX Subsection "Notes" See . .IP "issue_notes" 4 .IX Item "issue_notes" .Vb 5 \& my $notes = $api\->issue_notes( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes\*(C'\fR and returns the decoded response content. .IP "issue_note" 4 .IX Item "issue_note" .Vb 5 \& my $note = $api\->issue_note( \& $project_id, \& $issue_iid, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes/:note_id\*(C'\fR and returns the decoded response content. .IP "create_issue_note" 4 .IX Item "create_issue_note" .Vb 5 \& my $note = $api\->create_issue_note( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes\*(C'\fR and returns the decoded response content. .IP "edit_issue_note" 4 .IX Item "edit_issue_note" .Vb 6 \& $api\->edit_issue_note( \& $project_id, \& $issue_iid, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes/:note_id\*(C'\fR. .IP "delete_issue_note" 4 .IX Item "delete_issue_note" .Vb 5 \& $api\->delete_issue_note( \& $project_id, \& $issue_iid, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/notes/:note_id\*(C'\fR. .IP "snippet_notes" 4 .IX Item "snippet_notes" .Vb 5 \& my $notes = $api\->snippet_notes( \& $project_id, \& $snippet_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/notes\*(C'\fR and returns the decoded response content. .IP "snippet_note" 4 .IX Item "snippet_note" .Vb 5 \& my $note = $api\->snippet_note( \& $project_id, \& $snippet_id, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/notes/:note_id\*(C'\fR and returns the decoded response content. .IP "create_snippet_note" 4 .IX Item "create_snippet_note" .Vb 5 \& my $note = $api\->create_snippet_note( \& $project_id, \& $snippet_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/notes\*(C'\fR and returns the decoded response content. .IP "edit_snippet_note" 4 .IX Item "edit_snippet_note" .Vb 6 \& $api\->edit_snippet_note( \& $project_id, \& $snippet_id, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/notes/:note_id\*(C'\fR. .IP "delete_snippet_note" 4 .IX Item "delete_snippet_note" .Vb 5 \& $api\->delete_snippet_note( \& $project_id, \& $snippet_id, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/notes/:note_id\*(C'\fR. .IP "merge_request_notes" 4 .IX Item "merge_request_notes" .Vb 5 \& my $notes = $api\->merge_request_notes( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes\*(C'\fR and returns the decoded response content. .IP "merge_request_note" 4 .IX Item "merge_request_note" .Vb 5 \& my $note = $api\->merge_request_note( \& $project_id, \& $merge_request_iid, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id\*(C'\fR and returns the decoded response content. .IP "create_merge_request_note" 4 .IX Item "create_merge_request_note" .Vb 5 \& my $note = $api\->create_merge_request_note( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes\*(C'\fR and returns the decoded response content. .IP "edit_merge_request_note" 4 .IX Item "edit_merge_request_note" .Vb 6 \& $api\->edit_merge_request_note( \& $project_id, \& $merge_request_iid, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id\*(C'\fR. .IP "delete_merge_request_note" 4 .IX Item "delete_merge_request_note" .Vb 5 \& $api\->delete_merge_request_note( \& $project_id, \& $merge_request_iid, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/notes/:note_id\*(C'\fR. .SS "Discussions" .IX Subsection "Discussions" See . .IP "issue_discussions" 4 .IX Item "issue_discussions" .Vb 5 \& my $discussions = $api\->issue_discussions( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/discussions\*(C'\fR and returns the decoded response content. .IP "issue_discussion" 4 .IX Item "issue_discussion" .Vb 5 \& my $discussion = $api\->issue_discussion( \& $project_id, \& $issue_iid, \& $discussion_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/discussions/:discussion_id\*(C'\fR and returns the decoded response content. .IP "create_issue_discussion" 4 .IX Item "create_issue_discussion" .Vb 5 \& my $discussion = $api\->create_issue_discussion( \& $project_id, \& $issue_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/discussions\*(C'\fR and returns the decoded response content. .IP "create_issue_discussion_note" 4 .IX Item "create_issue_discussion_note" .Vb 6 \& $api\->create_issue_discussion_note( \& $project_id, \& $issue_iid, \& $discussion_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/discussions/:discussion_id/notes\*(C'\fR. .IP "edit_issue_discussion_note" 4 .IX Item "edit_issue_discussion_note" .Vb 7 \& $api\->edit_issue_discussion_note( \& $project_id, \& $issue_iid, \& $discussion_id, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id\*(C'\fR. .IP "delete_issue_discussion_note" 4 .IX Item "delete_issue_discussion_note" .Vb 6 \& $api\->delete_issue_discussion_note( \& $project_id, \& $issue_iid, \& $discussion_id, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id\*(C'\fR. .IP "project_snippet_discussions" 4 .IX Item "project_snippet_discussions" .Vb 5 \& my $discussions = $api\->project_snippet_discussions( \& $project_id, \& $snippet_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/discussions\*(C'\fR and returns the decoded response content. .IP "project_snippet_discussion" 4 .IX Item "project_snippet_discussion" .Vb 5 \& my $discussion = $api\->project_snippet_discussion( \& $project_id, \& $snippet_id, \& $discussion_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/discussions/:discussion_id\*(C'\fR and returns the decoded response content. .IP "create_project_snippet_discussion" 4 .IX Item "create_project_snippet_discussion" .Vb 5 \& my $discussion = $api\->create_project_snippet_discussion( \& $project_id, \& $snippet_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/discussions\*(C'\fR and returns the decoded response content. .IP "create_project_snippet_discussion_note" 4 .IX Item "create_project_snippet_discussion_note" .Vb 6 \& $api\->create_project_snippet_discussion_note( \& $project_id, \& $snippet_id, \& $discussion_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/discussions/:discussion_id/notes\*(C'\fR. .IP "edit_project_snippet_discussion_note" 4 .IX Item "edit_project_snippet_discussion_note" .Vb 7 \& $api\->edit_project_snippet_discussion_note( \& $project_id, \& $snippet_id, \& $discussion_id, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id\*(C'\fR. .IP "delete_project_snippet_discussion_note" 4 .IX Item "delete_project_snippet_discussion_note" .Vb 6 \& $api\->delete_project_snippet_discussion_note( \& $project_id, \& $snippet_id, \& $discussion_id, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id\*(C'\fR. .IP "merge_request_discussions" 4 .IX Item "merge_request_discussions" .Vb 5 \& my $discussions = $api\->merge_request_discussions( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/discussions\*(C'\fR and returns the decoded response content. .IP "merge_request_discussion" 4 .IX Item "merge_request_discussion" .Vb 5 \& my $discussion = $api\->merge_request_discussion( \& $project_id, \& $merge_request_iid, \& $discussion_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id\*(C'\fR and returns the decoded response content. .IP "create_merge_request_discussion" 4 .IX Item "create_merge_request_discussion" .Vb 5 \& my $discussion = $api\->create_merge_request_discussion( \& $project_id, \& $merge_request_iid, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/discussions\*(C'\fR and returns the decoded response content. .IP "resolve_merge_request_discussion" 4 .IX Item "resolve_merge_request_discussion" .Vb 6 \& $api\->resolve_merge_request_discussion( \& $project_id, \& $merge_request_iid, \& $discussion_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id\*(C'\fR. .IP "create_merge_request_discussion_note" 4 .IX Item "create_merge_request_discussion_note" .Vb 6 \& $api\->create_merge_request_discussion_note( \& $project_id, \& $merge_request_iid, \& $discussion_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes\*(C'\fR. .IP "edit_merge_request_discussion_note" 4 .IX Item "edit_merge_request_discussion_note" .Vb 7 \& $api\->edit_merge_request_discussion_note( \& $project_id, \& $merge_request_iid, \& $discussion_id, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id\*(C'\fR. .IP "delete_merge_request_discussion_note" 4 .IX Item "delete_merge_request_discussion_note" .Vb 6 \& $api\->delete_merge_request_discussion_note( \& $project_id, \& $merge_request_iid, \& $discussion_id, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id\*(C'\fR. .IP "commit_discussions" 4 .IX Item "commit_discussions" .Vb 5 \& my $discussions = $api\->commit_discussions( \& $project_id, \& $commit_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/commits/:commit_id/discussions\*(C'\fR and returns the decoded response content. .IP "commit_discussion" 4 .IX Item "commit_discussion" .Vb 5 \& my $discussion = $api\->commit_discussion( \& $project_id, \& $commit_id, \& $discussion_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/commits/:commit_id/discussions/:discussion_id\*(C'\fR and returns the decoded response content. .IP "create_commit_discussion" 4 .IX Item "create_commit_discussion" .Vb 5 \& my $discussion = $api\->create_commit_discussion( \& $project_id, \& $commit_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/commits/:commit_id/discussions\*(C'\fR and returns the decoded response content. .IP "create_commit_discussion_note" 4 .IX Item "create_commit_discussion_note" .Vb 6 \& $api\->create_commit_discussion_note( \& $project_id, \& $commit_id, \& $discussion_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/commits/:commit_id/discussions/:discussion_id/notes\*(C'\fR. .IP "edit_commit_discussion_note" 4 .IX Item "edit_commit_discussion_note" .Vb 7 \& $api\->edit_commit_discussion_note( \& $project_id, \& $commit_id, \& $discussion_id, \& $note_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/commits/:commit_id/discussions/:discussion_id/notes/:note_id\*(C'\fR. .IP "delete_commit_discussion_note" 4 .IX Item "delete_commit_discussion_note" .Vb 6 \& $api\->delete_commit_discussion_note( \& $project_id, \& $commit_id, \& $discussion_id, \& $note_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/commits/:commit_id/discussions/:discussion_id/notes/:note_id\*(C'\fR. .SS "Resource label events" .IX Subsection "Resource label events" See . .IP "issue_resource_label_events" 4 .IX Item "issue_resource_label_events" .Vb 4 \& my $events = $api\->issue_resource_label_events( \& $project_id, \& $issue_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/resource_label_events\*(C'\fR and returns the decoded response content. .IP "issue_resource_label_event" 4 .IX Item "issue_resource_label_event" .Vb 5 \& my $event = $api\->issue_resource_label_event( \& $project_id, \& $issue_iid, \& $resource_label_event_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/issues/:issue_iid/resource_label_events/:resource_label_event_id\*(C'\fR and returns the decoded response content. .IP "merge_request_resource_label_events" 4 .IX Item "merge_request_resource_label_events" .Vb 4 \& my $events = $api\->merge_request_resource_label_events( \& $project_id, \& $merge_request_iid, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/resource_label_events\*(C'\fR and returns the decoded response content. .IP "merge_request_resource_label_event" 4 .IX Item "merge_request_resource_label_event" .Vb 5 \& my $event = $api\->merge_request_resource_label_event( \& $project_id, \& $merge_request_iid, \& $resource_label_event_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/merge_requests/:merge_request_iid/resource_label_events/:resource_label_event_id\*(C'\fR and returns the decoded response content. .SS "Notification settings" .IX Subsection "Notification settings" See . .IP "global_notification_settings" 4 .IX Item "global_notification_settings" .Vb 1 \& my $settings = $api\->global_notification_settings(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`notification_settings\*(C'\fR and returns the decoded response content. .IP "set_global_notification_settings" 4 .IX Item "set_global_notification_settings" .Vb 3 \& my $settings = $api\->set_global_notification_settings( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`notification_settings\*(C'\fR and returns the decoded response content. .IP "group_notification_settings" 4 .IX Item "group_notification_settings" .Vb 3 \& my $settings = $api\->group_notification_settings( \& $group_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`groups/:group_id/notification_settings\*(C'\fR and returns the decoded response content. .IP "project_notification_settings" 4 .IX Item "project_notification_settings" .Vb 3 \& my $settings = $api\->project_notification_settings( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/notification_settings\*(C'\fR and returns the decoded response content. .IP "set_group_notification_settings" 4 .IX Item "set_group_notification_settings" .Vb 4 \& my $settings = $api\->set_group_notification_settings( \& $group_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`groups/:group_id/notification_settings\*(C'\fR and returns the decoded response content. .IP "set_project_notification_settings" 4 .IX Item "set_project_notification_settings" .Vb 4 \& my $settings = $api\->set_project_notification_settings( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/notification_settings\*(C'\fR and returns the decoded response content. .SS "Licenses" .IX Subsection "Licenses" See . .IP "license_templates" 4 .IX Item "license_templates" .Vb 3 \& my $templates = $api\->license_templates( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`templates/licenses\*(C'\fR and returns the decoded response content. .IP "license_template" 4 .IX Item "license_template" .Vb 4 \& my $template = $api\->license_template( \& $template_key, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`templates/licenses/:template_key\*(C'\fR and returns the decoded response content. .SS "Pages domains" .IX Subsection "Pages domains" See . .IP "global_pages_domains" 4 .IX Item "global_pages_domains" .Vb 3 \& my $domains = $api\->global_pages_domains( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`pages/domains\*(C'\fR and returns the decoded response content. .IP "pages_domains" 4 .IX Item "pages_domains" .Vb 4 \& my $domains = $api\->pages_domains( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/pages/domains\*(C'\fR and returns the decoded response content. .IP "pages_domain" 4 .IX Item "pages_domain" .Vb 4 \& my $domain = $api\->pages_domain( \& $project_id, \& $domain, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/pages/domains/:domain\*(C'\fR and returns the decoded response content. .IP "create_pages_domain" 4 .IX Item "create_pages_domain" .Vb 4 \& my $domain = $api\->create_pages_domain( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/pages/domains\*(C'\fR and returns the decoded response content. .IP "edit_pages_domain" 4 .IX Item "edit_pages_domain" .Vb 5 \& my $domain = $api\->edit_pages_domain( \& $project_id, \& $domain, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/pages/domains/:domain\*(C'\fR and returns the decoded response content. .IP "delete_pages_domain" 4 .IX Item "delete_pages_domain" .Vb 4 \& $api\->delete_pages_domain( \& $project_id, \& $domain, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/pages/domains/:domain\*(C'\fR. .SS "Pipelines" .IX Subsection "Pipelines" See . .IP "pipelines" 4 .IX Item "pipelines" .Vb 4 \& my $pipelines = $api\->pipelines( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipelines\*(C'\fR and returns the decoded response content. .IP "pipeline" 4 .IX Item "pipeline" .Vb 4 \& my $pipeline = $api\->pipeline( \& $project_id, \& $pipeline_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipelines/:pipeline_id\*(C'\fR and returns the decoded response content. .IP "create_pipeline" 4 .IX Item "create_pipeline" .Vb 4 \& my $pipeline = $api\->create_pipeline( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline\*(C'\fR and returns the decoded response content. .IP "retry_pipeline_jobs" 4 .IX Item "retry_pipeline_jobs" .Vb 4 \& my $pipeline = $api\->retry_pipeline_jobs( \& $project_id, \& $pipeline_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipelines/:pipeline_id/retry\*(C'\fR and returns the decoded response content. .IP "cancel_pipeline_jobs" 4 .IX Item "cancel_pipeline_jobs" .Vb 4 \& my $pipeline = $api\->cancel_pipeline_jobs( \& $project_id, \& $pipeline_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipelines/:pipeline_id/cancel\*(C'\fR and returns the decoded response content. .SS "Pipeline triggers" .IX Subsection "Pipeline triggers" See . .IP "triggers" 4 .IX Item "triggers" .Vb 4 \& my $triggers = $api\->triggers( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/triggers\*(C'\fR and returns the decoded response content. .IP "trigger" 4 .IX Item "trigger" .Vb 4 \& my $trigger = $api\->trigger( \& $project_id, \& $trigger_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/triggers/:trigger_id\*(C'\fR and returns the decoded response content. .IP "create_trigger" 4 .IX Item "create_trigger" .Vb 4 \& my $trigger = $api\->create_trigger( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/triggers\*(C'\fR and returns the decoded response content. .IP "edit_trigger" 4 .IX Item "edit_trigger" .Vb 5 \& my $trigger = $api\->edit_trigger( \& $project_id, \& $trigger_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/triggers/:trigger_id\*(C'\fR and returns the decoded response content. .IP "take_ownership_of_trigger" 4 .IX Item "take_ownership_of_trigger" .Vb 4 \& my $trigger = $api\->take_ownership_of_trigger( \& $project_id, \& $trigger_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/triggers/:trigger_id/take_ownership\*(C'\fR and returns the decoded response content. .IP "delete_trigger" 4 .IX Item "delete_trigger" .Vb 4 \& $api\->delete_trigger( \& $project_id, \& $trigger_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/triggers/:trigger_id\*(C'\fR. .SS "Pipeline schedules" .IX Subsection "Pipeline schedules" See . .IP "pipeline_schedules" 4 .IX Item "pipeline_schedules" .Vb 4 \& my $schedules = $api\->pipeline_schedules( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules\*(C'\fR and returns the decoded response content. .IP "pipeline_schedule" 4 .IX Item "pipeline_schedule" .Vb 4 \& my $schedule = $api\->pipeline_schedule( \& $project_id, \& $pipeline_schedule_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules/:pipeline_schedule_id\*(C'\fR and returns the decoded response content. .IP "create_pipeline_schedule" 4 .IX Item "create_pipeline_schedule" .Vb 4 \& my $schedule = $api\->create_pipeline_schedule( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules\*(C'\fR and returns the decoded response content. .IP "edit_pipeline_schedule" 4 .IX Item "edit_pipeline_schedule" .Vb 5 \& my $schedule = $api\->edit_pipeline_schedule( \& $project_id, \& $pipeline_schedule_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules/:pipeline_schedule_id\*(C'\fR and returns the decoded response content. .IP "take_ownership_of_pipeline_schedule" 4 .IX Item "take_ownership_of_pipeline_schedule" .Vb 4 \& my $schedule = $api\->take_ownership_of_pipeline_schedule( \& $project_id, \& $pipeline_schedule_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules/:pipeline_schedule_id/take_ownership\*(C'\fR and returns the decoded response content. .IP "delete_pipeline_schedule" 4 .IX Item "delete_pipeline_schedule" .Vb 4 \& my $schedule = $api\->delete_pipeline_schedule( \& $project_id, \& $pipeline_schedule_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules/:pipeline_schedule_id\*(C'\fR and returns the decoded response content. .IP "create_pipeline_schedule_variable" 4 .IX Item "create_pipeline_schedule_variable" .Vb 5 \& my $variable = $api\->create_pipeline_schedule_variable( \& $project_id, \& $pipeline_schedule_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables\*(C'\fR and returns the decoded response content. .IP "edit_pipeline_schedule_variable" 4 .IX Item "edit_pipeline_schedule_variable" .Vb 6 \& my $variable = $api\->edit_pipeline_schedule_variable( \& $project_id, \& $pipeline_schedule_id, \& $variable_key, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables/:variable_key\*(C'\fR and returns the decoded response content. .IP "delete_pipeline_schedule_variable" 4 .IX Item "delete_pipeline_schedule_variable" .Vb 5 \& my $variable = $api\->delete_pipeline_schedule_variable( \& $project_id, \& $pipeline_schedule_id, \& $variable_key, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/pipeline_schedules/:pipeline_schedule_id/variables/:variable_key\*(C'\fR and returns the decoded response content. .SS "Projects" .IX Subsection "Projects" See . .IP "projects" 4 .IX Item "projects" .Vb 3 \& my $projects = $api\->projects( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects\*(C'\fR and returns the decoded response content. .IP "user_projects" 4 .IX Item "user_projects" .Vb 4 \& my $projects = $api\->user_projects( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/projects\*(C'\fR and returns the decoded response content. .IP "project" 4 .IX Item "project" .Vb 4 \& my $project = $api\->project( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id\*(C'\fR and returns the decoded response content. .IP "project_users" 4 .IX Item "project_users" .Vb 4 \& my $users = $api\->project_users( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/users\*(C'\fR and returns the decoded response content. .IP "create_project" 4 .IX Item "create_project" .Vb 3 \& my $project = $api\->create_project( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects\*(C'\fR and returns the decoded response content. .IP "create_project_for_user" 4 .IX Item "create_project_for_user" .Vb 4 \& $api\->create_project_for_user( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/user/:user_id\*(C'\fR. .IP "edit_project" 4 .IX Item "edit_project" .Vb 4 \& $api\->edit_project( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id\*(C'\fR. .IP "fork_project" 4 .IX Item "fork_project" .Vb 4 \& $api\->fork_project( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/fork\*(C'\fR. .IP "project_forks" 4 .IX Item "project_forks" .Vb 4 \& my $forks = $api\->project_forks( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/forks\*(C'\fR and returns the decoded response content. .IP "start_project" 4 .IX Item "start_project" .Vb 3 \& my $project = $api\->start_project( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/star\*(C'\fR and returns the decoded response content. .IP "unstar_project" 4 .IX Item "unstar_project" .Vb 3 \& my $project = $api\->unstar_project( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/unstar\*(C'\fR and returns the decoded response content. .IP "project_languages" 4 .IX Item "project_languages" .Vb 3 \& my $languages = $api\->project_languages( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/languages\*(C'\fR and returns the decoded response content. .IP "archive_project" 4 .IX Item "archive_project" .Vb 3 \& my $project = $api\->archive_project( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/archive\*(C'\fR and returns the decoded response content. .IP "unarchive_project" 4 .IX Item "unarchive_project" .Vb 3 \& my $project = $api\->unarchive_project( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/unarchive\*(C'\fR and returns the decoded response content. .IP "delete_project" 4 .IX Item "delete_project" .Vb 3 \& $api\->delete_project( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id\*(C'\fR. .IP "upload_file_to_project" 4 .IX Item "upload_file_to_project" .Vb 4 \& my $upload = $api\->upload_file_to_project( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/uploads\*(C'\fR and returns the decoded response content. .Sp The \f(CW\*(C`file\*(C'\fR parameter must point to a readable file on the local filesystem. .IP "share_project_with_group" 4 .IX Item "share_project_with_group" .Vb 4 \& $api\->share_project_with_group( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/share\*(C'\fR. .IP "unshare_project_with_group" 4 .IX Item "unshare_project_with_group" .Vb 4 \& $api\->unshare_project_with_group( \& $project_id, \& $group_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/share/:group_id\*(C'\fR. .IP "project_hooks" 4 .IX Item "project_hooks" .Vb 3 \& my $hooks = $api\->project_hooks( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/hooks\*(C'\fR and returns the decoded response content. .IP "project_hook" 4 .IX Item "project_hook" .Vb 4 \& my $hook = $api\->project_hook( \& $project_id, \& $hook_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/hooks/:hook_id\*(C'\fR and returns the decoded response content. .IP "create_project_hook" 4 .IX Item "create_project_hook" .Vb 4 \& my $hook = $api\->create_project_hook( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/hooks\*(C'\fR and returns the decoded response content. .IP "edit_project_hook" 4 .IX Item "edit_project_hook" .Vb 5 \& my $hook = $api\->edit_project_hook( \& $project_id, \& $hook_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/hooks/:hook_id\*(C'\fR and returns the decoded response content. .IP "delete_project_hook" 4 .IX Item "delete_project_hook" .Vb 4 \& $api\->delete_project_hook( \& $project_id, \& $hook_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/hooks/:hook_id\*(C'\fR. .IP "set_project_fork" 4 .IX Item "set_project_fork" .Vb 4 \& $api\->set_project_fork( \& $project_id, \& $from_project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/fork/:from_project_id\*(C'\fR. .IP "clear_project_fork" 4 .IX Item "clear_project_fork" .Vb 3 \& $api\->clear_project_fork( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/fork\*(C'\fR. .IP "start_housekeeping" 4 .IX Item "start_housekeeping" .Vb 3 \& $api\->start_housekeeping( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/housekeeping\*(C'\fR. .IP "transfer_project_to_namespace" 4 .IX Item "transfer_project_to_namespace" .Vb 4 \& $api\->transfer_project_to_namespace( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/transfer\*(C'\fR. .SS "Project access requests" .IX Subsection "Project access requests" See . .IP "project_access_requests" 4 .IX Item "project_access_requests" .Vb 4 \& my $requests = $api\->project_access_requests( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/access_requests\*(C'\fR and returns the decoded response content. .IP "request_project_access" 4 .IX Item "request_project_access" .Vb 3 \& my $request = $api\->request_project_access( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/access_requests\*(C'\fR and returns the decoded response content. .IP "approve_project_access" 4 .IX Item "approve_project_access" .Vb 4 \& my $request = $api\->approve_project_access( \& $project_id, \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/access_requests/:user_id/approve\*(C'\fR and returns the decoded response content. .IP "deny_project_access" 4 .IX Item "deny_project_access" .Vb 4 \& $api\->deny_project_access( \& $project_id, \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/access_requests/:user_id\*(C'\fR. .SS "Project badges" .IX Subsection "Project badges" See . .IP "project_badges" 4 .IX Item "project_badges" .Vb 3 \& my $badges = $api\->project_badges( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/badges\*(C'\fR and returns the decoded response content. .IP "project_badge" 4 .IX Item "project_badge" .Vb 4 \& my $badge = $api\->project_badge( \& $project_id, \& $badge_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/badges/:badge_id\*(C'\fR and returns the decoded response content. .IP "create_project_badge" 4 .IX Item "create_project_badge" .Vb 4 \& my $badge = $api\->create_project_badge( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/badges\*(C'\fR and returns the decoded response content. .IP "edit_project_badge" 4 .IX Item "edit_project_badge" .Vb 5 \& my $badge = $api\->edit_project_badge( \& $project_id, \& $badge_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/badges/:badge_id\*(C'\fR and returns the decoded response content. .IP "delete_project_badge" 4 .IX Item "delete_project_badge" .Vb 4 \& $api\->delete_project_badge( \& $project_id, \& $badge_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/badges/:badge_id\*(C'\fR. .IP "preview_project_badge" 4 .IX Item "preview_project_badge" .Vb 4 \& my $preview = $api\->preview_project_badge( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/badges/render\*(C'\fR and returns the decoded response content. .SS "Project import/export" .IX Subsection "Project import/export" See . .IP "schedule_project_export" 4 .IX Item "schedule_project_export" .Vb 4 \& $api\->schedule_project_export( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/export\*(C'\fR. .IP "project_export_status" 4 .IX Item "project_export_status" .Vb 3 \& my $status = $api\->project_export_status( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/export\*(C'\fR and returns the decoded response content. .IP "download_project_export" 4 .IX Item "download_project_export" .Vb 3 \& my $download = $api\->download_project_export( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/export/download\*(C'\fR and returns the decoded response content. .IP "schedule_project_import" 4 .IX Item "schedule_project_import" .Vb 3 \& $api\->schedule_project_import( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/import\*(C'\fR. .IP "project_import_status" 4 .IX Item "project_import_status" .Vb 3 \& my $status = $api\->project_import_status( \& $project_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/import\*(C'\fR and returns the decoded response content. .SS "Project members" .IX Subsection "Project members" See . .IP "project_members" 4 .IX Item "project_members" .Vb 4 \& my $members = $api\->project_members( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/members\*(C'\fR and returns the decoded response content. .IP "all_project_members" 4 .IX Item "all_project_members" .Vb 4 \& my $members = $api\->all_project_members( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/members/all\*(C'\fR and returns the decoded response content. .IP "project_member" 4 .IX Item "project_member" .Vb 4 \& my $member = $api\->project_member( \& $project_id, \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/members/:user_id\*(C'\fR and returns the decoded response content. .IP "add_project_member" 4 .IX Item "add_project_member" .Vb 4 \& my $member = $api\->add_project_member( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/members\*(C'\fR and returns the decoded response content. .IP "update_project_member" 4 .IX Item "update_project_member" .Vb 5 \& my $member = $api\->update_project_member( \& $project_id, \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/members/:user_id\*(C'\fR and returns the decoded response content. .IP "remove_project_member" 4 .IX Item "remove_project_member" .Vb 4 \& $api\->remove_project_member( \& $project_id, \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/members/:user_id\*(C'\fR. .SS "Project snippets" .IX Subsection "Project snippets" See . .IP "project_snippets" 4 .IX Item "project_snippets" .Vb 4 \& my $snippets = $api\->project_snippets( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets\*(C'\fR and returns the decoded response content. .IP "project_snippet" 4 .IX Item "project_snippet" .Vb 4 \& my $snippet = $api\->project_snippet( \& $project_id, \& $snippet_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id\*(C'\fR and returns the decoded response content. .IP "create_project_snippet" 4 .IX Item "create_project_snippet" .Vb 4 \& $api\->create_project_snippet( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets\*(C'\fR. .IP "edit_project_snippet" 4 .IX Item "edit_project_snippet" .Vb 5 \& $api\->edit_project_snippet( \& $project_id, \& $snippet_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id\*(C'\fR. .IP "delete_project_snippet" 4 .IX Item "delete_project_snippet" .Vb 4 \& $api\->delete_project_snippet( \& $project_id, \& $snippet_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id\*(C'\fR. .IP "project_snippet_content" 4 .IX Item "project_snippet_content" .Vb 4 \& my $content = $api\->project_snippet_content( \& $project_id, \& $snippet_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/raw\*(C'\fR and returns the decoded response content. .IP "project_snippet_user_agent_detail" 4 .IX Item "project_snippet_user_agent_detail" .Vb 4 \& my $user_agent = $api\->project_snippet_user_agent_detail( \& $project_id, \& $snippet_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/snippets/:snippet_id/user_agent_detail\*(C'\fR and returns the decoded response content. .SS "Protected branches" .IX Subsection "Protected branches" See . .IP "protected_branches" 4 .IX Item "protected_branches" .Vb 4 \& my $branches = $api\->protected_branches( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/protected_branches\*(C'\fR and returns the decoded response content. .IP "protected_branch" 4 .IX Item "protected_branch" .Vb 4 \& my $branch = $api\->protected_branch( \& $project_id, \& $branch_name, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/protected_branches/:branch_name\*(C'\fR and returns the decoded response content. .IP "protect_branch" 4 .IX Item "protect_branch" .Vb 4 \& my $branch = $api\->protect_branch( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/protected_branches\*(C'\fR and returns the decoded response content. .IP "unprotect_branch" 4 .IX Item "unprotect_branch" .Vb 4 \& $api\->unprotect_branch( \& $project_id, \& $branch_name, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/protected_branches/:branch_name\*(C'\fR. .SS "Protected tags" .IX Subsection "Protected tags" See . .IP "protected_tags" 4 .IX Item "protected_tags" .Vb 4 \& my $tags = $api\->protected_tags( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/protected_tags\*(C'\fR and returns the decoded response content. .IP "protected_tag" 4 .IX Item "protected_tag" .Vb 4 \& my $tag = $api\->protected_tag( \& $project_id, \& $tag_name, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/protected_tags/:tag_name\*(C'\fR and returns the decoded response content. .IP "protect_tag" 4 .IX Item "protect_tag" .Vb 4 \& my $tag = $api\->protect_tag( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/protected_tags\*(C'\fR and returns the decoded response content. .IP "unprotect_tag" 4 .IX Item "unprotect_tag" .Vb 4 \& $api\->unprotect_tag( \& $project_id, \& $tag_name, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/protected_tags/:tag_name\*(C'\fR. .SS "Repositories" .IX Subsection "Repositories" See . .IP "tree" 4 .IX Item "tree" .Vb 4 \& my $tree = $api\->tree( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/tree\*(C'\fR and returns the decoded response content. .IP "blob" 4 .IX Item "blob" .Vb 4 \& my $blob = $api\->blob( \& $project_id, \& $sha, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/blobs/:sha\*(C'\fR and returns the decoded response content. .IP "raw_blob" 4 .IX Item "raw_blob" .Vb 4 \& my $raw_blob = $api\->raw_blob( \& $project_id, \& $sha, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/blobs/:sha/raw\*(C'\fR and returns the decoded response content. .IP "archive" 4 .IX Item "archive" .Vb 4 \& my $archive = $api\->archive( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/archive\*(C'\fR and returns the decoded response content. .IP "compare" 4 .IX Item "compare" .Vb 4 \& my $comparison = $api\->compare( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/compare\*(C'\fR and returns the decoded response content. .IP "contributors" 4 .IX Item "contributors" .Vb 4 \& my $contributors = $api\->contributors( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/contributors\*(C'\fR and returns the decoded response content. .SS "Repository files" .IX Subsection "Repository files" See . .IP "file" 4 .IX Item "file" .Vb 5 \& my $file = $api\->file( \& $project_id, \& $file_path, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/files/:file_path\*(C'\fR and returns the decoded response content. .IP "raw_file" 4 .IX Item "raw_file" .Vb 5 \& my $content = $api\->raw_file( \& $project_id, \& $file_path, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/files/:file_path/raw\*(C'\fR and returns the raw response content. .IP "create_file" 4 .IX Item "create_file" .Vb 5 \& $api\->create_file( \& $project_id, \& $file_path, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/files/:file_path\*(C'\fR. .IP "edit_file" 4 .IX Item "edit_file" .Vb 5 \& $api\->edit_file( \& $project_id, \& $file_path, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/files/:file_path\*(C'\fR. .IP "delete_file" 4 .IX Item "delete_file" .Vb 5 \& $api\->delete_file( \& $project_id, \& $file_path, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/files/:file_path\*(C'\fR. .SS "Runners" .IX Subsection "Runners" See . .IP "runners" 4 .IX Item "runners" .Vb 3 \& my $runners = $api\->runners( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`runners\*(C'\fR and returns the decoded response content. .IP "all_runners" 4 .IX Item "all_runners" .Vb 3 \& my $runners = $api\->all_runners( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`runners/all\*(C'\fR and returns the decoded response content. .IP "runner" 4 .IX Item "runner" .Vb 3 \& my $runner = $api\->runner( \& $runner_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`runners/:runner_id\*(C'\fR and returns the decoded response content. .IP "update_runner" 4 .IX Item "update_runner" .Vb 4 \& my $runner = $api\->update_runner( \& $runner_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`runners/:runner_id\*(C'\fR and returns the decoded response content. .IP "delete_runner" 4 .IX Item "delete_runner" .Vb 3 \& my $runner = $api\->delete_runner( \& $runner_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`runners/:runner_id\*(C'\fR and returns the decoded response content. .IP "runner_jobs" 4 .IX Item "runner_jobs" .Vb 4 \& my $jobs = $api\->runner_jobs( \& $runner_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`runners/:runner_id/jobs\*(C'\fR and returns the decoded response content. .IP "project_runners" 4 .IX Item "project_runners" .Vb 4 \& my $runners = $api\->project_runners( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/runners\*(C'\fR and returns the decoded response content. .IP "enable_project_runner" 4 .IX Item "enable_project_runner" .Vb 4 \& my $runner = $api\->enable_project_runner( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/runners\*(C'\fR and returns the decoded response content. .IP "disable_project_runner" 4 .IX Item "disable_project_runner" .Vb 4 \& my $runner = $api\->disable_project_runner( \& $project_id, \& $runner_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/runners/:runner_id\*(C'\fR and returns the decoded response content. .SS "Search" .IX Subsection "Search" See . .IP "search" 4 .IX Item "search" .Vb 3 \& my $results = $api\->search( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`search\*(C'\fR and returns the decoded response content. .SS "Services" .IX Subsection "Services" See . .IP "project_service" 4 .IX Item "project_service" .Vb 4 \& my $service = $api\->project_service( \& $project_id, \& $service_name, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/services/:service_name\*(C'\fR and returns the decoded response content. .IP "edit_project_service" 4 .IX Item "edit_project_service" .Vb 5 \& $api\->edit_project_service( \& $project_id, \& $service_name, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/services/:service_name\*(C'\fR. .IP "delete_project_service" 4 .IX Item "delete_project_service" .Vb 4 \& $api\->delete_project_service( \& $project_id, \& $service_name, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/services/:service_name\*(C'\fR. .SS "Application settings" .IX Subsection "Application settings" See . .IP "settings" 4 .IX Item "settings" .Vb 1 \& my $settings = $api\->settings(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`application/settings\*(C'\fR and returns the decoded response content. .IP "update_settings" 4 .IX Item "update_settings" .Vb 3 \& my $settings = $api\->update_settings( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`application/settings\*(C'\fR and returns the decoded response content. .SS "Sidekiq Metrics" .IX Subsection "Sidekiq Metrics" See . .IP "queue_metrics" 4 .IX Item "queue_metrics" .Vb 1 \& my $metrics = $api\->queue_metrics(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`sidekiq/queue_metrics\*(C'\fR and returns the decoded response content. .IP "process_metrics" 4 .IX Item "process_metrics" .Vb 1 \& my $metrics = $api\->process_metrics(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`sidekiq/process_metrics\*(C'\fR and returns the decoded response content. .IP "job_stats" 4 .IX Item "job_stats" .Vb 1 \& my $stats = $api\->job_stats(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`sidekiq/job_stats\*(C'\fR and returns the decoded response content. .IP "compound_metrics" 4 .IX Item "compound_metrics" .Vb 1 \& my $metrics = $api\->compound_metrics(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`sidekiq/compound_metrics\*(C'\fR and returns the decoded response content. .SS "System hooks" .IX Subsection "System hooks" See . .IP "hooks" 4 .IX Item "hooks" .Vb 3 \& my $hooks = $api\->hooks( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`hooks\*(C'\fR and returns the decoded response content. .IP "create_hook" 4 .IX Item "create_hook" .Vb 3 \& $api\->create_hook( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`hooks\*(C'\fR. .IP "test_hook" 4 .IX Item "test_hook" .Vb 3 \& my $hook = $api\->test_hook( \& $hook_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`hooks/:hook_id\*(C'\fR and returns the decoded response content. .IP "delete_hook" 4 .IX Item "delete_hook" .Vb 3 \& $api\->delete_hook( \& $hook_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`hooks/:hook_id\*(C'\fR. .SS "Tags" .IX Subsection "Tags" See . .IP "tags" 4 .IX Item "tags" .Vb 4 \& my $tags = $api\->tags( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/tags\*(C'\fR and returns the decoded response content. .IP "tag" 4 .IX Item "tag" .Vb 4 \& my $tag = $api\->tag( \& $project_id, \& $tag_name, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/tags/:tag_name\*(C'\fR and returns the decoded response content. .IP "create_tag" 4 .IX Item "create_tag" .Vb 4 \& my $tag = $api\->create_tag( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/tags\*(C'\fR and returns the decoded response content. .IP "delete_tag" 4 .IX Item "delete_tag" .Vb 4 \& $api\->delete_tag( \& $project_id, \& $tag_name, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/tags/:tag_name\*(C'\fR. .IP "create_release" 4 .IX Item "create_release" .Vb 5 \& $api\->create_release( \& $project_id, \& $tag_name, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/tags/:tag_name/release\*(C'\fR. .IP "edit_release" 4 .IX Item "edit_release" .Vb 5 \& $api\->edit_release( \& $project_id, \& $tag_name, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/repository/tags/:tag_name/release\*(C'\fR. .SS "Todos" .IX Subsection "Todos" See . .IP "todos" 4 .IX Item "todos" .Vb 3 \& my $todos = $api\->todos( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`todos\*(C'\fR and returns the decoded response content. .IP "mark_todo_done" 4 .IX Item "mark_todo_done" .Vb 3 \& my $todo = $api\->mark_todo_done( \& $todo_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`todos/:todo_id/mark_as_done\*(C'\fR and returns the decoded response content. .IP "mark_all_todos_done" 4 .IX Item "mark_all_todos_done" .Vb 1 \& $api\->mark_all_todos_done(); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`todos/mark_as_done\*(C'\fR. .SS "Users" .IX Subsection "Users" See . .IP "users" 4 .IX Item "users" .Vb 3 \& my $users = $api\->users( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users\*(C'\fR and returns the decoded response content. .IP "user" 4 .IX Item "user" .Vb 3 \& my $user = $api\->user( \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id\*(C'\fR and returns the decoded response content. .IP "create_user" 4 .IX Item "create_user" .Vb 3 \& $api\->create_user( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`users\*(C'\fR. .IP "edit_user" 4 .IX Item "edit_user" .Vb 4 \& $api\->edit_user( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`users/:user_id\*(C'\fR. .IP "delete_user" 4 .IX Item "delete_user" .Vb 3 \& $api\->delete_user( \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`users/:user_id\*(C'\fR. .IP "current_user" 4 .IX Item "current_user" .Vb 1 \& my $user = $api\->current_user(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`user\*(C'\fR and returns the decoded response content. .IP "current_user_ssh_keys" 4 .IX Item "current_user_ssh_keys" .Vb 3 \& my $keys = $api\->current_user_ssh_keys( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`user/keys\*(C'\fR and returns the decoded response content. .IP "user_ssh_keys" 4 .IX Item "user_ssh_keys" .Vb 4 \& my $keys = $api\->user_ssh_keys( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/keys\*(C'\fR and returns the decoded response content. .IP "user_ssh_key" 4 .IX Item "user_ssh_key" .Vb 3 \& my $key = $api\->user_ssh_key( \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`user/keys/:key_id\*(C'\fR and returns the decoded response content. .IP "create_current_user_ssh_key" 4 .IX Item "create_current_user_ssh_key" .Vb 3 \& $api\->create_current_user_ssh_key( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`user/keys\*(C'\fR. .IP "create_user_ssh_key" 4 .IX Item "create_user_ssh_key" .Vb 4 \& $api\->create_user_ssh_key( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`users/:user_id/keys\*(C'\fR. .IP "delete_current_user_ssh_key" 4 .IX Item "delete_current_user_ssh_key" .Vb 3 \& $api\->delete_current_user_ssh_key( \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`user/keys/:key_id\*(C'\fR. .IP "delete_user_ssh_key" 4 .IX Item "delete_user_ssh_key" .Vb 4 \& $api\->delete_user_ssh_key( \& $user_id, \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`users/:user_id/keys/:key_id\*(C'\fR. .IP "current_user_gpg_keys" 4 .IX Item "current_user_gpg_keys" .Vb 3 \& my $keys = $api\->current_user_gpg_keys( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`user/gpg_keys\*(C'\fR and returns the decoded response content. .IP "current_user_gpg_key" 4 .IX Item "current_user_gpg_key" .Vb 3 \& my $key = $api\->current_user_gpg_key( \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`user/gpg_keys/:key_id\*(C'\fR and returns the decoded response content. .IP "create_current_user_gpg_key" 4 .IX Item "create_current_user_gpg_key" .Vb 3 \& $api\->create_current_user_gpg_key( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`user/gpg_keys\*(C'\fR. .IP "delete_current_user_gpg_key" 4 .IX Item "delete_current_user_gpg_key" .Vb 3 \& $api\->delete_current_user_gpg_key( \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`user/gpg_keys/:key_id\*(C'\fR. .IP "user_gpg_keys" 4 .IX Item "user_gpg_keys" .Vb 4 \& my $keys = $api\->user_gpg_keys( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/gpg_keys\*(C'\fR and returns the decoded response content. .IP "user_gpg_key" 4 .IX Item "user_gpg_key" .Vb 4 \& my $key = $api\->user_gpg_key( \& $user_id, \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/gpg_keys/:key_id\*(C'\fR and returns the decoded response content. .IP "create_user_gpg_key" 4 .IX Item "create_user_gpg_key" .Vb 4 \& my $keys = $api\->create_user_gpg_key( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`users/:user_id/gpg_keys\*(C'\fR and returns the decoded response content. .IP "delete_user_gpg_key" 4 .IX Item "delete_user_gpg_key" .Vb 4 \& $api\->delete_user_gpg_key( \& $user_id, \& $key_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`users/:user_id/gpg_keys/:key_id\*(C'\fR. .IP "current_user_emails" 4 .IX Item "current_user_emails" .Vb 3 \& my $emails = $api\->current_user_emails( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`user/emails\*(C'\fR and returns the decoded response content. .IP "user_emails" 4 .IX Item "user_emails" .Vb 4 \& my $emails = $api\->user_emails( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/emails\*(C'\fR and returns the decoded response content. .IP "current_user_email" 4 .IX Item "current_user_email" .Vb 3 \& my $email = $api\->current_user_email( \& $email_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`user/emails/:email_id\*(C'\fR and returns the decoded response content. .IP "create_current_user_email" 4 .IX Item "create_current_user_email" .Vb 3 \& my $email = $api\->create_current_user_email( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`user/emails\*(C'\fR and returns the decoded response content. .IP "create_user_email" 4 .IX Item "create_user_email" .Vb 4 \& my $email = $api\->create_user_email( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`users/:user_id/emails\*(C'\fR and returns the decoded response content. .IP "delete_current_user_email" 4 .IX Item "delete_current_user_email" .Vb 3 \& $api\->delete_current_user_email( \& $email_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`user/emails/:email_id\*(C'\fR. .IP "delete_user_email" 4 .IX Item "delete_user_email" .Vb 4 \& $api\->delete_user_email( \& $user_id, \& $email_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`users/:user_id/emails/:email_id\*(C'\fR. .IP "block_user" 4 .IX Item "block_user" .Vb 3 \& my $success = $api\->block_user( \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`users/:user_id/block\*(C'\fR and returns the decoded response content. .IP "unblock_user" 4 .IX Item "unblock_user" .Vb 3 \& my $success = $api\->unblock_user( \& $user_id, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`users/:user_id/unblock\*(C'\fR and returns the decoded response content. .IP "user_impersonation_tokens" 4 .IX Item "user_impersonation_tokens" .Vb 4 \& my $tokens = $api\->user_impersonation_tokens( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/impersonation_tokens\*(C'\fR and returns the decoded response content. .IP "user_impersonation_token" 4 .IX Item "user_impersonation_token" .Vb 4 \& my $token = $api\->user_impersonation_token( \& $user_id, \& $impersonation_token_id, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`users/:user_id/impersonation_tokens/:impersonation_token_id\*(C'\fR and returns the decoded response content. .IP "create_user_impersonation_token" 4 .IX Item "create_user_impersonation_token" .Vb 4 \& my $token = $api\->create_user_impersonation_token( \& $user_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`users/:user_id/impersonation_tokens\*(C'\fR and returns the decoded response content. .IP "delete_user_impersonation_token" 4 .IX Item "delete_user_impersonation_token" .Vb 4 \& $api\->delete_user_impersonation_token( \& $user_id, \& $impersonation_token_id, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`users/:user_id/impersonation_tokens/:impersonation_token_id\*(C'\fR. .IP "all_user_activities" 4 .IX Item "all_user_activities" .Vb 3 \& my $activities = $api\->all_user_activities( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`user/activities\*(C'\fR and returns the decoded response content. .SS "Validate the .gitlab\-ci.yml" .IX Subsection "Validate the .gitlab-ci.yml" See . .IP "lint" 4 .IX Item "lint" .Vb 3 \& my $result = $api\->lint( \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`lint\*(C'\fR and returns the decoded response content. .SS "Version" .IX Subsection "Version" See . .IP "version" 4 .IX Item "version" .Vb 1 \& my $version = $api\->version(); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`version\*(C'\fR and returns the decoded response content. .SS "Wikis" .IX Subsection "Wikis" See . .IP "wiki_pages" 4 .IX Item "wiki_pages" .Vb 4 \& my $pages = $api\->wiki_pages( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/wikis\*(C'\fR and returns the decoded response content. .IP "wiki_page" 4 .IX Item "wiki_page" .Vb 4 \& my $pages = $api\->wiki_page( \& $project_id, \& $slug, \& ); .Ve .Sp Sends a \f(CW\*(C`GET\*(C'\fR request to \f(CW\*(C`projects/:project_id/wikis/:slug\*(C'\fR and returns the decoded response content. .IP "create_wiki_page" 4 .IX Item "create_wiki_page" .Vb 4 \& my $page = $api\->create_wiki_page( \& $project_id, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`POST\*(C'\fR request to \f(CW\*(C`projects/:project_id/wikis\*(C'\fR and returns the decoded response content. .IP "edit_wiki_page" 4 .IX Item "edit_wiki_page" .Vb 5 \& my $page = $api\->edit_wiki_page( \& $project_id, \& $slug, \& \e%params, \& ); .Ve .Sp Sends a \f(CW\*(C`PUT\*(C'\fR request to \f(CW\*(C`projects/:project_id/wikis/:slug\*(C'\fR and returns the decoded response content. .IP "delete_wiki_page" 4 .IX Item "delete_wiki_page" .Vb 4 \& $api\->delete_wiki_page( \& $project_id, \& $slug, \& ); .Ve .Sp Sends a \f(CW\*(C`DELETE\*(C'\fR request to \f(CW\*(C`projects/:project_id/wikis/:slug\*(C'\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" Net::Gitlab purports to provide an interface to the GitLab \s-1API,\s0 but it is hard to tell due to a complete lack of documentation via either \&\s-1POD\s0 or unit tests. .SH "CONTRIBUTING" .IX Header "CONTRIBUTING" This module is auto-generated from a set of \s-1YAML\s0 files defining the interface of GitLab's \s-1API. \s0 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 \&\f(CW\*(C`authors/\*(C'\fR directory instead of \f(CW\*(C`lib/GitLab/API/v4.pm\*(C'\fR directly. .PP Please see for more information. .PP Alternatively, you can open a ticket . .SH "AUTHOR" .IX Header "AUTHOR" Aran Clary Deltac .SH "CONTRIBUTORS" .IX Header "CONTRIBUTORS" .IP "\(bu" 4 Dotan Dimet .IP "\(bu" 4 Nigel Gregoire .IP "\(bu" 4 trunov-ms .IP "\(bu" 4 Marek R. Sotola .IP "\(bu" 4 José Joaquín Atria .IP "\(bu" 4 Dave Webb .IP "\(bu" 4 Simon Ruderich .IP "\(bu" 4 royce55 .IP "\(bu" 4 gregor herrmann .IP "\(bu" 4 Luc Didry .IP "\(bu" 4 Kieren Diment .SH "ACKNOWLEDGEMENTS" .IX Header "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. .SH "LICENSE" .IX Header "LICENSE" This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.