File Coverage

blib/lib/Pithub/Repos/Collaborators.pm
Criterion Covered Total %
statement 21 21 100.0
branch 6 6 100.0
condition n/a
subroutine 6 6 100.0
pod 4 4 100.0
total 37 37 100.0


line stmt bran cond sub pod time code
1             package Pithub::Repos::Collaborators;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01043';
4              
5             # ABSTRACT: Github v3 Repo Collaborators API
6              
7 16     16   124 use Moo;
  16         36  
  16         174  
8 16     16   6569 use Carp qw( croak );
  16         46  
  16         7787  
9             extends 'Pithub::Base';
10              
11              
12             sub add {
13 4     4 1 14403 my ( $self, %args ) = @_;
14             croak 'Missing key in parameters: collaborator'
15 4 100       30 unless $args{collaborator};
16 3         29 $self->_validate_user_repo_args( \%args );
17             return $self->request(
18             method => 'PUT',
19             path => sprintf(
20             '/repos/%s/%s/collaborators/%s', delete $args{user},
21             delete $args{repo}, delete $args{collaborator}
22 3         40 ),
23             %args,
24             );
25             }
26              
27              
28             sub is_collaborator {
29 4     4 1 4124 my ( $self, %args ) = @_;
30             croak 'Missing key in parameters: collaborator'
31 4 100       36 unless $args{collaborator};
32 3         17 $self->_validate_user_repo_args( \%args );
33             return $self->request(
34             method => 'GET',
35             path => sprintf(
36             '/repos/%s/%s/collaborators/%s', delete $args{user},
37             delete $args{repo}, delete $args{collaborator}
38 3         25 ),
39             %args,
40             );
41             }
42              
43              
44             sub list {
45 19     19 1 2226 my ( $self, %args ) = @_;
46 19         70 $self->_validate_user_repo_args( \%args );
47             return $self->request(
48             method => 'GET',
49             path => sprintf(
50             '/repos/%s/%s/collaborators', delete $args{user},
51             delete $args{repo}
52 13         108 ),
53             %args,
54             );
55             }
56              
57              
58             sub remove {
59 4     4 1 4075 my ( $self, %args ) = @_;
60             croak 'Missing key in parameters: collaborator'
61 4 100       29 unless $args{collaborator};
62 3         15 $self->_validate_user_repo_args( \%args );
63             return $self->request(
64             method => 'DELETE',
65             path => sprintf(
66             '/repos/%s/%s/collaborators/%s', delete $args{user},
67             delete $args{repo}, delete $args{collaborator}
68 3         24 ),
69             %args
70             );
71             }
72              
73             1;
74              
75             __END__