File Coverage

blib/lib/Pithub/GitData/References.pm
Criterion Covered Total %
statement 24 24 100.0
branch 10 10 100.0
condition n/a
subroutine 6 6 100.0
pod 4 4 100.0
total 44 44 100.0


line stmt bran cond sub pod time code
1             package Pithub::GitData::References;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01041';
4              
5             # ABSTRACT: Github v3 Git Data References API
6              
7 16     16   1238 use Moo;
  16         40  
  16         89  
8 16     16   5009 use Carp qw( croak );
  16         38  
  16         7794  
9             extends 'Pithub::Base';
10              
11              
12             sub create {
13 5     5 1 9696 my ( $self, %args ) = @_;
14             croak 'Missing key in parameters: data (hashref)'
15 5 100       41 unless ref $args{data} eq 'HASH';
16 3         19 $self->_validate_user_repo_args( \%args );
17             return $self->request(
18             method => 'POST',
19             path => sprintf(
20             '/repos/%s/%s/git/refs', delete $args{user}, delete $args{repo}
21 3         41 ),
22             %args,
23             );
24             }
25              
26              
27             sub get {
28 3     3 1 2495 my ( $self, %args ) = @_;
29 3 100       24 croak 'Missing key in parameters: ref' unless $args{ref};
30 2         18 $self->_validate_user_repo_args( \%args );
31             return $self->request(
32             method => 'GET',
33             path => sprintf(
34             '/repos/%s/%s/git/refs/%s', delete $args{user},
35             delete $args{repo}, delete $args{ref}
36 2         62 ),
37             %args,
38             );
39             }
40              
41              
42             sub list {
43 3     3 1 3752 my ( $self, %args ) = @_;
44 3         21 $self->_validate_user_repo_args( \%args );
45 3 100       70 if ( my $ref = $args{ref} ) {
46             return $self->request(
47             method => 'GET',
48             path => sprintf(
49             '/repos/%s/%s/git/refs/%s', delete $args{user},
50             delete $args{repo}, delete $args{ref}
51 2         51 ),
52             %args,
53             );
54             }
55             return $self->request(
56             method => 'GET',
57             path => sprintf(
58             '/repos/%s/%s/git/refs', delete $args{user}, delete $args{repo}
59 1         10 ),
60             %args,
61             );
62             }
63              
64              
65             sub update {
66 6     6 1 5462 my ( $self, %args ) = @_;
67 6 100       33 croak 'Missing key in parameters: ref' unless $args{ref};
68             croak 'Missing key in parameters: data (hashref)'
69 5 100       35 unless ref $args{data} eq 'HASH';
70 3         17 $self->_validate_user_repo_args( \%args );
71             return $self->request(
72             method => 'PATCH',
73             path => sprintf(
74             '/repos/%s/%s/git/refs/%s', delete $args{user},
75             delete $args{repo}, delete $args{ref}
76 3         37 ),
77             %args,
78             );
79             }
80              
81             1;
82              
83             __END__