Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Roman Lacko
gitlab_api
Commits
9aa0c68d
Commit
9aa0c68d
authored
Mar 03, 2017
by
Roman Lacko
Browse files
updated modules to comply with 8.17.2
parent
3434f6d4
Changes
5
Hide whitespace changes
Inline
Side-by-side
GitLab/Groups.pm
View file @
9aa0c68d
...
...
@@ -8,20 +8,37 @@ use vars qw($VERSION);
use
GitLab::
API
;
use
Log::
Any
qw($log)
;
our
$VERSION
=
v8
.1
2.1
;
our
$VERSION
=
v8
.1
7.2
;
my
$requests
=
{
groups
=>
{
method
=>
"
GET
",
path
=>
"
/groups
",
query
=>
[
qw(search)
],
query
=>
[
qw(
skip_groups
all_available
search
order_by
sort
statistics
owned
)
],
paginated
=>
1
,
},
group_get_projects
=>
{
method
=>
"
GET
",
path
=>
"
/groups/<gid>/projects
",
optional
=>
[
qw(archived visibility order_by sort search ci_enabled_first)
],
optional
=>
[
qw(
archived
visibility
order_by
sort
search
simple
owned
starred
)
],
paginated
=>
1
,
},
...
...
@@ -33,8 +50,17 @@ my $requests = {
group_create
=>
{
method
=>
"
POST
",
path
=>
"
/groups
",
required
=>
[
qw(name path)
],
optional
=>
[
qw(description visibility_level lfs_enabled request_access_enabled)
],
required
=>
[
qw(
name
path
)
],
optional
=>
[
qw(
description
visibility
lfs_enabled
request_access_enabled
parent_id
)
],
},
transfer_project_to_group
=>
{
...
...
@@ -45,7 +71,14 @@ my $requests = {
group_update
=>
{
method
=>
"
PUT
",
path
=>
"
/groups/<gid>
",
optional
=>
[
qw(name path description visibility_level lfs_enabled request_access_enabled)
],
optional
=>
[
qw(
name
path
description
visibility
lfs_enabled
request_access_enabled
)
],
},
group_delete
=>
{
...
...
@@ -75,8 +108,7 @@ response formats.
=head1 VERSION
Implements API calls for GitLab CE C<v8.10.0>.
Checked 2016-09-29 for GitLab CE C<v8.12.1>.
Implements API calls for GitLab CE C<v8.17.2>.
=head1 DESCRIPTION
...
...
@@ -91,22 +123,22 @@ Please refer to the official documentation for the full list.
=over
=item groups()
=item
L<
groups()
|https://docs.gitlab.com/ce/api/groups.html#list-groups>
$groups = $gitlab->groups( [:search] );
$groups = $gitlab->groups( [:search]
[:all_available] [:owned]
);
Returns a list of groups.
An optional parameter C<search> can be used to filter the list by substring match on C<name>.
=item group_details()
=item
L<
group_details()
|https://docs.gitlab.com/ce/api/groups.html#details-of-a-group>
$details = $gitlab->group_details( :gid );
Returns details about a group with the given C<gid>.
=item group_create()
=item
L<
group_create()
|https://docs.gitlab.com/ce/api/groups.html#new-group>
$group = $gitlab->group_create( :name, :path, [:description], [:visibility
_level
] );
$group = $gitlab->group_create( :name, :path, [:description], [:visibility] );
Creates a new group. Required arguments are
...
...
@@ -116,16 +148,16 @@ Creates a new group. Required arguments are
In addition, the following I<optional> arguments can be specified:
description group's description
visibility
_level
see GitLab::API for possible values
visibility
see GitLab::API for possible values
=item group_update()
=item
L<
group_update()
|https://docs.gitlab.com/ce/api/groups.html#update-group>
$group = $gitlab->group_update( :gid );
Updates the grup with the given C<gid>.
Takes same arguments as C<group_create>, except they are all optional.
=item group_delete()
=item
L<
group_delete()
|https://docs.gitlab.com/ce/api/groups.html#remove-group>
$gitlab->group_delete( :gid );
...
...
@@ -141,13 +173,13 @@ This section was moved to a separate module L<GitLab::Members>.
=over
=item group_get_projects()
=item
L<
group_get_projects()
|https://docs.gitlab.com/ce/api/groups.html#list-a-group-39-s-projects>
$projects = $gitlab->group_get_projects( :gid );
Returns a list of projects owned by the group with the given C<gid>.
=item transfer_project_to_group()
=item
L<
transfer_project_to_group()
|https://docs.gitlab.com/ce/api/groups.html#transfer-project-to-group>
$gitlab->transfer_project_to_group( :gid, :projid );
...
...
GitLab/Members.pm
View file @
9aa0c68d
...
...
@@ -8,13 +8,16 @@ use vars qw($VERSION);
use
GitLab::
API
;
use
Log::
Any
qw($log)
;
our
$VERSION
=
v8
.1
2.1
;
our
$VERSION
=
v8
.1
7.2
;
my
$requests
=
{
group_members
=>
{
method
=>
"
GET
",
path
=>
"
/groups/<gid>/members
",
paginated
=>
1
,
optional
=>
[
qw(
query
)
],
},
group_get_member
=>
{
...
...
@@ -25,15 +28,24 @@ my $requests = {
group_add_member
=>
{
method
=>
"
POST
",
path
=>
"
/groups/<gid>/members
",
required
=>
[
qw!user_id access_level!
],
optional
=>
[
qw!expires_at!
],
required
=>
[
qw(
user_id
access_level
)
],
optional
=>
[
qw(
expires_at
)
],
},
group_update_member
=>
{
method
=>
"
PUT
",
path
=>
"
/groups/<gid>/members/<user_id>
",
required
=>
[
qw!access_level!
],
optional
=>
[
qw!expires_at!
],
required
=>
[
qw(
access_level
)
],
optional
=>
[
qw(
expires_at
)
],
},
group_delete_member
=>
{
...
...
@@ -45,6 +57,9 @@ my $requests = {
method
=>
"
GET
",
path
=>
"
/projects/<id>/members
",
paginated
=>
1
,
optional
=>
[
qw(
query
)
],
},
project_get_member
=>
{
...
...
@@ -55,15 +70,24 @@ my $requests = {
project_add_member
=>
{
method
=>
"
POST
",
path
=>
"
/projects/<id>/members
",
required
=>
[
qw!user_id access_level!
],
optional
=>
[
qw!expires_at!
],
required
=>
[
qw(
user_id
access_level
)
],
optional
=>
[
qw(
expires_at
)
],
},
project_update_member
=>
{
method
=>
"
PUT
",
path
=>
"
/projects/<id>/members/<user_id>
",
required
=>
[
qw!access_level!
],
optional
=>
[
qw!expires_at!
],
required
=>
[
qw(
access_level
)
],
optional
=>
[
qw(
expires_at
)
],
},
project_delete_member
=>
{
...
...
@@ -93,8 +117,7 @@ response formats.
=head1 VERSION
Implements API calls for GitLab CE C<v8.10.0>.
Checked 2016-09-29 for GitLab CE C<v8.12.1>.
Implements API calls for GitLab CE C<v8.17.2>.
=head1 DESCRIPTION
...
...
@@ -109,13 +132,13 @@ Please refer to the official documentation for the full list.
=over
=item group_members()
=item
L<
group_members()
|https://docs.gitlab.com/ce/api/members.html#list-all-members-of-a-group-or-project>
$members = $gitlab->group_members( :gid );
Returns a list of members in the group with the specified C<gid>.
=item group_get_member()
=item
L<
group_get_member()
|https://docs.gitlab.com/ce/api/members.html#get-a-member-of-a-group-or-project>
$gitlab->group_get_member( :gid, :user_id )
...
...
@@ -128,7 +151,7 @@ Can also be used to check whether the given user is a member of the group if use
# not a member
}
=item group_add_member()
=item
L<
group_add_member()
|https://docs.gitlab.com/ce/api/members.html#add-a-member-to-a-group-or-project>
$gitlab->group_add_member( :gid, :user_id, :access_level, [:expires_at] );
...
...
@@ -136,14 +159,14 @@ Adds a user with C<user_id> to the group with the given C<gid> with the specifie
See L<GitLab::API> module for possible access level values.
The optional argument C<expires_at> expects format C<YYYY-MM-DD>.
=item group_update_member()
=item
L<
group_update_member()
|https://docs.gitlab.com/ce/api/members.html#edit-a-member-of-a-group-or-project>
$gitlab->group_update_member( :gid, :user_id, :access_level, [:expires_at] );
For user with the given C<user_id> the function changes his C<access_level> in the group with the specified C<gid>.
It can also remove the C<expires_at> property if set to C<undef>.
=item group_delete_member()
=item
L<
group_delete_member()
|https://docs.gitlab.com/ce/api/members.html#remove-a-member-from-a-group-or-project>
$gitlab->group_delete_member( :gid, :user_id );
...
...
@@ -153,13 +176,13 @@ Removes the user with C<user_id> from the group with the specified C<gid>.
=over
=item project_members()
=item
L<
project_members()
|https://docs.gitlab.com/ce/api/members.html#list-all-members-of-a-group-or-project>
$members = $gitlab->project_members( :gid );
Returns a list of members in the project with the specified C<id>.
=item project_get_member()
=item
L<
project_get_member()
|https://docs.gitlab.com/ce/api/members.html#get-a-member-of-a-group-or-project>
$gitlab->project_get_member( :gid, :user_id )
...
...
@@ -172,7 +195,7 @@ Can also be used to check whether the given user is a member of the project if u
# not a member
}
=item project_add_member()
=item
L<
project_add_member()
|https://docs.gitlab.com/ce/api/members.html#add-a-member-to-a-group-or-project>
$gitlab->project_add_member( :gid, :user_id, :access_level, [:expires_at] );
...
...
@@ -180,14 +203,14 @@ Adds a user with C<user_id> to the project with the given C<id> with the specifi
See L<GitLab::API> module for possible access level values.
The optional argument C<expires_at> expects format C<YYYY-MM-DD>.
=item project_update_member()
=item
L<
project_update_member()
|https://docs.gitlab.com/ce/api/members.html#edit-a-member-of-a-group-or-project>
$gitlab->project_update_member( :gid, :user_id, :access_level, [:expires_at] );
For user with the given C<user_id> the function changes his C<access_level> in the group with the specified C<gid>.
It can also remove the C<expires_at> property if set to C<undef>.
=item group_delete_member()
=item
L<
group_delete_member()
|https://docs.gitlab.com/ce/api/members.html#remove-a-member-from-a-group-or-project>
$gitlab->group_delete_member( :gid, :user_id );
...
...
GitLab/Namespaces.pm
View file @
9aa0c68d
...
...
@@ -8,13 +8,15 @@ use vars qw($VERSION);
use
GitLab::
API
;
use
Log::
Any
qw($log)
;
our
$VERSION
=
v8
.1
2.1
;
our
$VERSION
=
v8
.1
7.2
;
my
$requests
=
{
namespaces
=>
{
method
=>
"
GET
",
path
=>
"
/namespaces
",
query
=>
[
qw(search)
],
query
=>
[
qw(
search
)
],
paginated
=>
1
,
}
};
...
...
@@ -51,8 +53,7 @@ See L<GitLab API -- Namespaces|http://doc.gitlab.com/ce/api/namespaces.html> for
=head1 VERSION
Implements API calls for GitLab CE C<v8.10.0>.
Checked 2016-09-29 for GitLab CE C<v8.12.1>.
Implements API calls for GitLab CE C<v8.17.2>.
=head1 DESCRIPTION
...
...
GitLab/Projects.pm
View file @
9aa0c68d
...
...
@@ -8,128 +8,185 @@ use vars qw($VERSION);
use
GitLab::
API
;
use
Log::
Any
qw($log)
;
our
$VERSION
=
v8
.1
2.1
;
our
$VERSION
=
v8
.1
7.2
;
my
$requests
=
{
projects
=>
{
method
=>
"
GET
",
path
=>
"
/projects
",
query
=>
[
qw(archived visibility order_by sort search)
],
paginated
=>
1
,
},
projects_owned
=>
{
method
=>
"
GET
",
path
=>
"
/projects/owned
",
query
=>
[
qw(archived visibility order_by sort search)
],
paginated
=>
1
,
},
projects_starred
=>
{
method
=>
"
GET
",
path
=>
"
/projects/starred
",
query
=>
[
qw(archived visibility order_by sort search)
],
paginated
=>
1
,
},
projects_all
=>
{
method
=>
"
GET
",
path
=>
"
/projects/all
",
query
=>
[
qw(archived visibility order_by sort search)
],
query
=>
[
qw(
archived
visibility
order_by
sort
search
simple
owned
starred
)
],
paginated
=>
1
,
},
project_by_id
=>
{
method
=>
"
GET
",
path
=>
"
/projects/<id>
",
encode
=>
[
qw(id)
],
encode
=>
[
qw(
id
)
],
},
project_
event
s
=>
{
project_
user
s
=>
{
method
=>
"
GET
",
path
=>
"
/projects/<id>/events
",
encode
=>
[
qw(id)
],
path
=>
"
/projects/<id>/users
",
optional
=>
[
qw(
search
)
],
encode
=>
[
qw(
id
)
],
paginated
=>
1
,
},
project
s_search
=>
{
project
_events
=>
{
method
=>
"
GET
",
path
=>
"
/projects/search/<query>
",
encode
=>
[
qw(query)
],
optional
=>
[
qw(order_by sort)
],
path
=>
"
/projects/<id>/events
",
encode
=>
[
qw(
id
)
],
paginated
=>
1
,
},
project_create
=>
{
method
=>
"
POST
",
path
=>
"
/projects
",
required
=>
[
qw(name)
],
optional
=>
[
qw(path namespace_id description issues_enabled
merge_requests_enabled builds_enabled wiki_enabled snippets_enabled
container_registry_enabled shared_runners_enabled public
visibility_level import_url public_builds
only_allow_merge_if_build_succeeds lfs_enabled
request_access_enabled)
],
optional
=>
[
qw(
name
path
namespace_id
description
issues_enabled
merge_requests_enabled
builds_enabled
wiki_enabled
snippets_enabled
container_registry_enabled
shared_runners_enabled
visibility
public_builds
import_url
public_builds
only_allow_merge_if_build_succeeds
only_allow_merge_if_all_discussions_are_resolved
lfs_enabled
request_access_enabled
)
],
},
project_create_for_user
=>
{
method
=>
"
POST
",
path
=>
"
/projects/user/<uid>
",
required
=>
[
qw(name)
],
optional
=>
[
qw(path namespace_id description issues_enabled
merge_requests_enabled builds_enabled wiki_enabled snippets_enabled
container_registry_enabled shared_runners_enabled public
visibility_level import_url public_builds
only_allow_merge_if_build_succeeds lfs_enabled
request_access_enabled)
],
required
=>
[
qw(
name
)
],
optional
=>
[
qw(
path
default_branch
namespace_id
description
issues_enabled
merge_requests_enabled
builds_enabled
wiki_enabled
snippets_enabled
container_registry_enabled
shared_runners_enabled
visibility
import_url
public_builds
only_allow_merge_if_build_succeeds
only_allow_merge_if_all_discussions_are_resolved
lfs_enabled
request_access_enabled
)
],
},
project_edit
=>
{
method
=>
"
PUT
",
path
=>
"
/projects/<id>
",
optional
=>
[
qw(name path namespace_id description issues_enabled
merge_requests_enabled builds_enabled wiki_enabled snippets_enabled
container_registry_enabled shared_runners_enabled public
visibility_level import_url public_builds
only_allow_merge_if_build_succeeds lfs_enabled
request_access_enabled)
],
required
=>
[
qw(
name
)
],
optional
=>
[
qw(
path
default_branch
description
issues_enabled
merge_requests_enabled
builds_enabled
wiki_enabled
snippets_enabled
container_registry_enabled
shared_runners_enabled
visibility
import_url
public_builds
only_allow_merge_if_build_succeeds
only_allow_merge_if_all_discussions_are_resolved
lfs_enabled
request_access_enabled
)
],
},
project_fork
=>
{
method
=>
"
POST
",
path
=>
"
/projects/fork/<id>
",
encode
=>
[
qw(id namespace)
],
optional
=>
[
qw(namespace)
],
encode
=>
[
qw(
id
namespace
)
],
optional
=>
[
qw(
namespace
)
],
},
project_star
=>
{
method
=>
"
POST
",
path
=>
"
/projects/<id>/star
",
encode
=>
[
qw(id)
],
encode
=>
[
qw(
id
)
],
},
project_unstar
=>
{
method
=>
"
DELETE
",
path
=>
"
/projects/<id>/unstar
",
encode
=>
[
qw(id)
],
encode
=>
[
qw(
id
)
],
},
project_archive
=>
{
method
=>
"
POST
",
path
=>
"
/projects/<id>/archive
",
encode
=>
[
qw(id)
],
encode
=>
[
qw(
id
)
],
},
project_unarchive
=>
{
method
=>
"
DELETE
",
path
=>
"
/projects/<id>/unarchive
",
encode
=>
[
qw(id)
],
encode
=>
[
qw(
id
)
],
},
project_delete
=>
{
method
=>
"
DELETE
",
path
=>
"
/projects/<id>
",
encode
=>
[
qw(id)
],
encode
=>
[
qw(
id
)
],
},
# DO NOT USE, not sure how this is supposed to work
...
...
@@ -143,59 +200,115 @@ my $requests = {
project_share
=>
{
method
=>
"
POST
",
path
=>
"
/projects/<id>/share
",
required
=>
[
qw(group_id group_access)
],
optional
=>
[
qw(expires_at)
],
encode
=>
[
qw(id)
],
required
=>
[
qw(
group_id
group_access
)
],
optional
=>
[
qw(
expires_at
)
],
encode
=>
[
qw(
id
)
],
},
project_unshare
=>
{
method
=>
"
DELETE
",
path
=>
"
/projects/<id>/share/<group_id>
",
},
project_hooks
=>
{
method
=>
"
GET
",
path
=>
"
/projects/<id>/hooks
",
encode
=>
[
qw(id)
],
encode
=>
[
qw(
id
)
],
paginated
=>
1
,
},
project_get_hook
=>
{
method
=>
"
GET
",
path
=>
"
/projects/<id>/hooks/<hook_id>
",
encode
=>
[
qw(id)
],
encode
=>
[
qw(
id
)
],
},
project_add_hook
=>
{
method
=>
"
POST
",
path
=>
"
/projects/<id>/hooks
",
encode
=>
[
qw(id)
],
required
=>
[
qw(url)
],
optional
=>
[
qw(push_events issues_events merge_requests_events
tag_push_events note_events build_events pipeline_events
wiki_page_events enable_ssl_verification )
],
encode
=>
[
qw(
id
)
],
required
=>
[
qw(
url