File Coverage

blib/lib/Pithub/Repos/Keys.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::Keys;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01041';
4              
5             # ABSTRACT: Github v3 Repo Keys API
6              
7 16     16   111 use Moo;
  16         33  
  16         87  
8 16     16   4961 use Carp qw( croak );
  16         41  
  16         6483  
9             extends 'Pithub::Base';
10              
11              
12             sub create {
13 4     4 1 9007 my ( $self, %args ) = @_;
14             croak 'Missing key in parameters: data (hashref)'
15 4 100       34 unless ref $args{data} eq 'HASH';
16 3         21 $self->_validate_user_repo_args( \%args );
17             return $self->request(
18             method => 'POST',
19             path => sprintf(
20             '/repos/%s/%s/keys', delete $args{user}, delete $args{repo}
21 3         38 ),
22             %args,
23             );
24             }
25              
26              
27             sub delete {
28 4     4 1 3813 my ( $self, %args ) = @_;
29 4 100       27 croak 'Missing key in parameters: key_id' unless $args{key_id};
30 3         16 $self->_validate_user_repo_args( \%args );
31             return $self->request(
32             method => 'DELETE',
33             path => sprintf(
34             '/repos/%s/%s/keys/%s', delete $args{user}, delete $args{repo},
35             delete $args{key_id}
36 3         35 ),
37             %args,
38             );
39             }
40              
41              
42             sub get {
43 4     4 1 3728 my ( $self, %args ) = @_;
44 4 100       27 croak 'Missing key in parameters: key_id' unless $args{key_id};
45 3         15 $self->_validate_user_repo_args( \%args );
46             return $self->request(
47             method => 'GET',
48             path => sprintf(
49             '/repos/%s/%s/keys/%s', delete $args{user}, delete $args{repo},
50             delete $args{key_id}
51 3         31 ),
52             %args,
53             );
54             }
55              
56              
57             sub list {
58 19     19 1 2371 my ( $self, %args ) = @_;
59 19         113 $self->_validate_user_repo_args( \%args );
60             return $self->request(
61             method => 'GET',
62             path => sprintf(
63             '/repos/%s/%s/keys', delete $args{user}, delete $args{repo}
64 13         103 ),
65             %args,
66             );
67             }
68              
69             1;
70              
71             __END__