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.01039';
4             # ABSTRACT: Github v3 Git Data References API
5              
6 15     15   942 use Moo;
  15         29  
  15         75  
7 15     15   3983 use Carp qw( croak );
  15         33  
  15         5792  
8             extends 'Pithub::Base';
9              
10              
11             sub create {
12 5     5 1 8365 my ( $self, %args ) = @_;
13 5 100       33 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
14 3         23 $self->_validate_user_repo_args( \%args );
15             return $self->request(
16             method => 'POST',
17 3         33 path => sprintf( '/repos/%s/%s/git/refs', delete $args{user}, delete $args{repo} ),
18             %args,
19             );
20             }
21              
22              
23             sub get {
24 3     3 1 2242 my ( $self, %args ) = @_;
25 3 100       19 croak 'Missing key in parameters: ref' unless $args{ref};
26 2         14 $self->_validate_user_repo_args( \%args );
27             return $self->request(
28             method => 'GET',
29 2         32 path => sprintf( '/repos/%s/%s/git/refs/%s', delete $args{user}, delete $args{repo}, delete $args{ref} ),
30             %args,
31             );
32             }
33              
34              
35             sub list {
36 3     3 1 3088 my ( $self, %args ) = @_;
37 3         16 $self->_validate_user_repo_args( \%args );
38 3 100       10 if ( my $ref = $args{ref} ) {
39             return $self->request(
40             method => 'GET',
41 2         24 path => sprintf( '/repos/%s/%s/git/refs/%s', delete $args{user}, delete $args{repo}, delete $args{ref} ),
42             %args,
43             );
44             }
45             return $self->request(
46             method => 'GET',
47 1         7 path => sprintf( '/repos/%s/%s/git/refs', delete $args{user}, delete $args{repo} ),
48             %args,
49             );
50             }
51              
52              
53             sub update {
54 6     6 1 4191 my ( $self, %args ) = @_;
55 6 100       25 croak 'Missing key in parameters: ref' unless $args{ref};
56 5 100       32 croak 'Missing key in parameters: data (hashref)' unless ref $args{data} eq 'HASH';
57 3         13 $self->_validate_user_repo_args( \%args );
58             return $self->request(
59             method => 'PATCH',
60 3         27 path => sprintf( '/repos/%s/%s/git/refs/%s', delete $args{user}, delete $args{repo}, delete $args{ref} ),
61             %args,
62             );
63             }
64              
65             1;
66              
67             __END__