Commit 2dc2d186 authored by Roman Lacko's avatar Roman Lacko
Browse files

update existing modules to v10.3.3

parent 66a35075
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ use vars qw($VERSION);
use GitLab::API;
use Log::Any        qw($log);

our $VERSION = v8.17.2;
our $VERSION = v10.3.3;

my $requests = {
    groups  => {
@@ -26,6 +26,21 @@ my $requests = {
        paginated   => 1,
    },

    subgroups => {
        method      => "GET",
        path        => "/groups/<gid>/subgroups",
        query       => [qw(
            skip_groups
            all_available
            search
            order_by
            sort
            statistics
            owned
        )],
        paginated   => 1,
    },

    group_get_projects => {
        method      => "GET",
        path        => "/groups/<gid>/projects",
@@ -108,7 +123,7 @@ response formats.

=head1 VERSION

Implements API calls for GitLab CE C<v8.17.2>.
Implements API calls for GitLab CE C<v10.3.3>.

=head1 DESCRIPTION

@@ -130,6 +145,13 @@ Please refer to the official documentation for the full list.
Returns a list of groups.
An optional parameter C<search> can be used to filter the list by substring match on C<name>.

=item L<subgroups()|https://docs.gitlab.com/ce/api/groups.html#list-a-groups-39-s-subgroups>

    $subgroups = $gitlab->subgroups( :gid );

Returns subgroups of the given group.
Accepts same filtering parameters as L</groups()>.

=item L<group_details()|https://docs.gitlab.com/ce/api/groups.html#details-of-a-group>

    $details = $gitlab->group_details( :gid );
+53 −94
Original line number Diff line number Diff line
@@ -8,26 +8,26 @@ use vars qw($VERSION);
use GitLab::API;
use Log::Any        qw($log);

our $VERSION = v8.17.2;
our $VERSION = v10.3.3;

my $requests = {
    group_members   => {
    "<ENTITY>_members"   => {
        method      => "GET",
        path        => "/groups/<gid>/members",
        path        => "/<ENTITY>s/<gid>/members",
        paginated   => 1,
        optional    => [qw(
            query
        )],
    },

    group_get_member => {
    "<ENTITY>_get_member" => {
        method      => "GET",
        path        => "/groups/<gid>/members/<user_id>",
        path        => "/<ENTITY>s/<id>/members/<user_id>",
    },

    group_add_member => {
    "<ENTITY>_add_member" => {
        method      => "POST",
        path        => "/groups/<gid>/members",
        path        => "/<ENTITY>s/<id>/members",
        required    => [qw(
            user_id
            access_level
@@ -37,9 +37,9 @@ my $requests = {
        )],
    },

    group_update_member => {
    "<ENTITY>_update_member" => {
        method      => "PUT",
        path        => "/groups/<gid>/members/<user_id>",
        path        => "/<ENTITY>s/<id>/members/<user_id>",
        required    => [qw(
            access_level
        )],
@@ -48,40 +48,9 @@ my $requests = {
        )],
    },

    group_delete_member => {
        method      => "DELETE",
        path        => "/groups/<gid>/members/<user_id>",
    },

    project_members => {
        method      => "GET",
        path        => "/projects/<id>/members",
        paginated   => 1,
        optional    => [qw(
            query
        )],
    },

    project_get_member => {
        method      => "GET",
        path        => "/projects/<id>/members/<user_id>",
    },

    project_add_member => {
        method      => "POST",
        path        => "/projects/<id>/members",
        required    => [qw(
            user_id
            access_level
        )],
        optional    => [qw(
            expires_at
        )],
    },

    project_update_member => {
    "<ENTITY>_update_member" => {
        method      => "PUT",
        path        => "/projects/<id>/members/<user_id>",
        path        => "/<ENTITY>s/<id>/members/<user_id>",
        required    => [qw(
            access_level
        )],
@@ -90,17 +59,34 @@ my $requests = {
        )],
    },

    project_delete_member => {
    "<ENTITY>_delete_member" => {
        method      => "DELETE",
        path        => "/projects/<id>/members/<user_id>",
        path        => "/<ENTITY>s/<gid>/members/<user_id>",
    },
};

sub import {
    $log->debug("initializing " . __PACKAGE__);

    my $emap = {
        group   => "gid",
        project => "id",
    };

    while (my ($name, $tmpl) = each(%$requests)) {
        $tmpl->{name} = $name unless exists $tmpl->{name};
        GitLab::API->register($tmpl);
        foreach my $entity (keys %$emap) {
            my $copy = { %$tmpl };

            $copy->{name} = $name
                unless exists $copy->{name};

            foreach my $v (values %$copy) {
                $v =~ s/<ENTITY>/$entity/g;
                $v =~ s/<id>/<$emap->{$entity}>/g;
            }

            GitLab::API->register($copy);
        }
    }
}

@@ -117,7 +103,7 @@ response formats.

=head1 VERSION

Implements API calls for GitLab CE C<v8.17.2>.
Implements API calls for GitLab CE C<v10.3.3>.

=head1 DESCRIPTION

@@ -128,21 +114,27 @@ Please see the documentation for the L<GitLab::Users> module.
Note that not all optional arguments are listed.
Please refer to the official documentation for the full list.

=head2 Group Members
=head2 Group and Project Members

=over

=item L<group_members()|https://docs.gitlab.com/ce/api/members.html#list-all-members-of-a-group-or-project>

=item L<project_members()|https://docs.gitlab.com/ce/api/members.html#list-all-members-of-a-group-or-project>

    $members = $gitlab->group_members( :gid );
    $members = $gitlab->project_members( :id );

Returns a list of members in the group with the specified C<gid>.
Returns a list of members of the namespace specified by C<gid> or C<id>.

=item L<group_get_member()|https://docs.gitlab.com/ce/api/members.html#get-a-member-of-a-group-or-project>

=item L<project_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 )
    $gitlab->project_get_member( :id, :user_id )

Returns the information about a member of the group.
Returns the information about a member of the group or project.
Can also be used to check whether the given user is a member of the group if used with C<< -immortal => 1 >>:

    if (defined $gitlab->group_get_member(gid => $gid, $user_id => $user_id, -immortal => 1)) {
@@ -153,68 +145,35 @@ Can also be used to check whether the given user is a member of the group if use

=item L<group_add_member()|https://docs.gitlab.com/ce/api/members.html#add-a-member-to-a-group-or-project>

=item L<project_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] );
    $gitlab->project_add_member( :id, :user_id, :access_level, [:expires_at] );

Adds a user with C<user_id> to the group with the given C<gid> with the specified C<access_level>.
Similarly for the project API.
See L<GitLab::API> module for possible access level values.
The optional argument C<expires_at> expects format C<YYYY-MM-DD>.

=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 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 );

Removes the user with C<user_id> from the group with the specified C<gid>.

=head2 Project Members

=over

=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 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 )

Returns the information about a member of the project.
Can also be used to check whether the given user is a member of the project if used with C<< -immortal => 1 >>:

    if (defined $gitlab->project_get_member(id => $id, $user_id => $user_id, -immortal => 1)) {
        # is a member
    } else {
        # not a 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] );

Adds a user with C<user_id> to the project with the given C<id> with the specified C<access_level>.
See L<GitLab::API> module for possible access level values.
The optional argument C<expires_at> expects format C<YYYY-MM-DD>.

=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] );
    $gitlab->group_update_member( :gid, :user_id, :access_level, [:expires_at] );
    $gitlab->project_update_member( :id, :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 L<group_delete_member()|https://docs.gitlab.com/ce/api/members.html#remove-a-member-from-a-group-or-project>

=item L<project_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->project_delete_member( :id, :user_id );

Removes the user with C<user_id> from the group with the specified C<gid>.
Removes the user with C<user_id> from the group with the specified C<gid>
or a project specidied by the C<id>.

=back

+16 −4
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ use vars qw($VERSION);
use GitLab::API;
use Log::Any        qw($log);

our $VERSION = v8.17.2;
our $VERSION = v10.3.3;

my $requests = {
    namespaces => {
@@ -18,7 +18,12 @@ my $requests = {
            search
        )],
        paginated   => 1,
    }
    },

    namespace_by_id => {
        method      => "GET",
        path        => "/namespaces/<id>",
    },
};

sub import {
@@ -50,10 +55,11 @@ See L<GitLab API -- Namespaces|http://doc.gitlab.com/ce/api/namespaces.html> for
    $api->sudo("john.doe");

    my $namespaces = $api->namespaces(search => "group1");
    my $namespace  = $api->namespace_by_id(id => 10);

=head1 VERSION

Implements API calls for GitLab CE C<v8.17.2>.
Implements API calls for GitLab CE C<v10.3.3>.

=head1 DESCRIPTION

@@ -61,7 +67,7 @@ From GitLab API: I<"Usernames and groupnames fall under a special category calle

=over

=item namespaces()
=item L<namespaces()|https://docs.gitlab.com/ce/api/namespaces.html#list-namespaces>

    $namespaces = $gitlab->namespaces();
    $namespaces = $gitlab->namespaces(search => $what);
@@ -77,6 +83,12 @@ To get namespaces of user with login C<$login>, you can do this:
Note that the authenticated user must be an administrator to use L<GitLab::API/sudo>.
If the user with login C<$login> is an administrator, the call will return B<all> namespaces.

=item L<namespace_by_id()|https://docs.gitlab.com/ce/api/namespaces.html#get-namespace-by-id>

    $namespace = $gitlab->namespace_by_id( :id )

Returns a given namespace by its C<id>.

=back

=head1 AUTHOR
+35 −37
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ use vars qw($VERSION);
use GitLab::API;
use Log::Any        qw($log);

our $VERSION = v8.17.2;
our $VERSION = v10.3.3;

my $requests = {
    projects => {
@@ -22,7 +22,11 @@ my $requests = {
            search
            simple
            owned
            membership
            starred
            statistics
            with_issues_enabled
            with_merge_requests_enabled
        )],
        paginated   => 1,
    },
@@ -32,30 +36,10 @@ my $requests = {
        path        => "/projects/<id>",
        encode      => [qw(
            id
            statistics
        )],
    },

    project_users => {
        method      => "GET",
        path        => "/projects/<id>/users",
        optional    => [qw(
            search
        )],
        encode      => [qw(
            id
        )],
        paginated   => 1,
    },

    project_events => {
        method      => "GET",
        path        => "/projects/<id>/events",
        encode      => [qw(
            id
        )],
        paginated   => 1,
    },

    project_create => {
        method      => "POST",
        path        => "/projects",
@@ -66,19 +50,23 @@ my $requests = {
            description
            issues_enabled
            merge_requests_enabled
            builds_enabled
            jobs_enabled
            wiki_enabled
            snippets_enabled
            resolve_outdated_diff_discussions
            container_registry_enabled
            shared_runners_enabled
            visibility
            public_builds
            import_url
            public_builds
            public_jobs
            only_allow_merge_if_build_succeeds
            only_allow_merge_if_all_discussions_are_resolved
            lfs_enabled
            request_access_enabled
            tag_list
            avatar
            printing_merge_request_link_enabled
            ci_config_path
        )],
    },

@@ -95,18 +83,23 @@ my $requests = {
            description
            issues_enabled
            merge_requests_enabled
            builds_enabled
            jobs_enabled
            wiki_enabled
            snippets_enabled
            resolve_outdated_diff_discussions
            container_registry_enabled
            shared_runners_enabled
            visibility
            import_url
            public_builds
            public_jobs
            only_allow_merge_if_build_succeeds
            only_allow_merge_if_all_discussions_are_resolved
            lfs_enabled
            request_access_enabled
            tag_list
            avatar
            printing_merge_request_link_enabled
            ci_config_path
        )],
    },

@@ -119,21 +112,27 @@ my $requests = {
        optional    => [qw(
            path
            default_branch
            namespace_id
            description
            issues_enabled
            merge_requests_enabled
            builds_enabled
            jobs_enabled
            wiki_enabled
            snippets_enabled
            resolve_outdated_diff_discussions
            container_registry_enabled
            shared_runners_enabled
            visibility
            import_url
            public_builds
            public_jobs
            only_allow_merge_if_build_succeeds
            only_allow_merge_if_all_discussions_are_resolved
            lfs_enabled
            request_access_enabled
            tag_list
            avatar
            printing_merge_request_link_enabled
            ci_config_path
        )],
    },

@@ -250,7 +249,7 @@ my $requests = {
            merge_requests_events
            tag_push_events
            note_events
            build_events
            job_events
            pipeline_events
            wiki_page_events
            enable_ssl_verification
@@ -270,7 +269,7 @@ my $requests = {
            merge_requests_events
            tag_push_events
            note_events
            build_events
            job_events
            pipeline_events
            wiki_page_events
            enable_ssl_verification
@@ -333,7 +332,7 @@ response formats.

=head1 VERSION

Implements API calls for GitLab CE C<v8.17.2>.
Implements API calls for GitLab CE C<v10.3.3>.

=head1 DESCRIPTION

@@ -362,15 +361,14 @@ Returns the project with the given ID, which can be either a number or a string

=item L<project_users()|https://docs.gitlab.com/ce/api/projects.html#get-project-users>

    $gitlab->project_users( [:search] );
B<This method has been removed from API>.

Returns the user list of a project.
Use L<GitLab::Members::project_members()|GitLab::Members/project_members()> instead.

=item L<project_events()|https://docs.gitlab.com/ce/api/projects.html#get-project-events>

    $gitlab->project_events( :id );

Returns the list of events for the given project.
This method has been moved to
L<GitLab::Events::project_evens()|GitLab::Events/project_events()>.

=back

+219 −48

File changed.

Preview size limit exceeded, changes collapsed.