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.01041';
4              
5             # ABSTRACT: Github v3 Repo Collaborators API
6              
7 16     16   117 use Moo;
  16         37  
  16         223  
8 16     16   4945 use Carp qw( croak );
  16         50  
  16         6813  
9             extends 'Pithub::Base';
10              
11              
12             sub add {
13 4     4 1 8987 my ( $self, %args ) = @_;
14             croak 'Missing key in parameters: collaborator'
15 4 100       26 unless $args{collaborator};
16 3         24 $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         38 ),
23             %args,
24             );
25             }
26              
27              
28             sub is_collaborator {
29 4     4 1 3764 my ( $self, %args ) = @_;
30             croak 'Missing key in parameters: collaborator'
31 4 100       24 unless $args{collaborator};
32 3         15 $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         33 ),
39             %args,
40             );
41             }
42              
43              
44             sub list {
45 19     19 1 2302 my ( $self, %args ) = @_;
46 19         80 $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         109 ),
53             %args,
54             );
55             }
56              
57              
58             sub remove {
59 4     4 1 3779 my ( $self, %args ) = @_;
60             croak 'Missing key in parameters: collaborator'
61 4 100       26 unless $args{collaborator};
62 3         17 $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         34 ),
69             %args
70             );
71             }
72              
73             1;
74              
75             __END__