File Coverage

blib/lib/Pithub/Repos/Releases.pm
Criterion Covered Total %
statement 30 30 100.0
branch 10 10 100.0
condition n/a
subroutine 9 9 100.0
pod 6 6 100.0
total 55 55 100.0


line stmt bran cond sub pod time code
1             package Pithub::Repos::Releases;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01043';
4              
5             # ABSTRACT: Github v3 Repo Releases API
6              
7 16     16   145 use Moo;
  16         33  
  16         101  
8 16     16   6463 use Carp qw( croak );
  16         56  
  16         1031  
9 16     16   9038 use Pithub::Repos::Releases::Assets ();
  16         56  
  16         7903  
10             extends 'Pithub::Base';
11              
12              
13             sub assets {
14 1     1 1 945 return shift->_create_instance( Pithub::Repos::Releases::Assets::, @_ );
15             }
16              
17              
18             sub list {
19 2     2 1 11065 my ( $self, %args ) = @_;
20 2         30 $self->_validate_user_repo_args( \%args );
21             return $self->request(
22             method => 'GET',
23             path => sprintf(
24             '/repos/%s/%s/releases', delete $args{user}, delete $args{repo}
25 2         32 ),
26             %args,
27             );
28             }
29              
30              
31             sub get {
32 3     3 1 3319 my ( $self, %args ) = @_;
33 3 100       50 croak 'Missing key in parameters: release_id' unless $args{release_id};
34 2         17 $self->_validate_user_repo_args( \%args );
35             return $self->request(
36             method => 'GET',
37             path => sprintf(
38             '/repos/%s/%s/releases/%d', delete $args{user},
39             delete $args{repo}, delete $args{release_id}
40 2         27 ),
41             %args,
42             );
43             }
44              
45              
46             sub create {
47 4     4 1 4950 my ( $self, %args ) = @_;
48             croak 'Missing key in parameters: data (hashref)'
49 4 100       40 unless ref $args{data} eq 'HASH';
50 3         306 $self->_validate_user_repo_args( \%args );
51             return $self->request(
52             method => 'POST',
53             path => sprintf(
54             '/repos/%s/%s/releases', delete $args{user}, delete $args{repo}
55 3         40 ),
56             %args,
57             );
58             }
59              
60              
61             sub update {
62 5     5 1 5902 my ( $self, %args ) = @_;
63 5 100       43 croak 'Missing key in parameters: release_id' unless $args{release_id};
64             croak 'Missing key in parameters: data (hashref)'
65 4 100       32 unless ref $args{data} eq 'HASH';
66 3         19 $self->_validate_user_repo_args( \%args );
67             return $self->request(
68             method => 'PATCH',
69             path => sprintf(
70             '/repos/%s/%s/releases/%d', delete $args{user},
71             delete $args{repo}, delete $args{release_id}
72 3         35 ),
73             %args,
74             );
75             }
76              
77              
78             sub delete {
79 4     4 1 4920 my ( $self, %args ) = @_;
80 4 100       35 croak 'Missing key in parameters: release_id' unless $args{release_id};
81 3         20 $self->_validate_user_repo_args( \%args );
82             return $self->request(
83             method => 'DELETE',
84             path => sprintf(
85             '/repos/%s/%s/releases/%d', delete $args{user},
86             delete $args{repo}, delete $args{release_id}
87 3         46 ),
88             %args,
89             );
90             }
91              
92             1;
93              
94             __END__