File Coverage

blib/lib/WWW/Gitea.pm
Criterion Covered Total %
statement 47 54 87.0
branch 2 2 100.0
condition n/a
subroutine 19 24 79.1
pod 2 2 100.0
total 70 82 85.3


line stmt bran cond sub pod time code
1             package WWW::Gitea;
2              
3             # ABSTRACT: Perl client for the Gitea REST API
4              
5 5     5   997844 use Moo;
  5         42784  
  5         30  
6 5     5   9082 use Carp qw(croak);
  5         12  
  5         294  
7 5     5   2732 use WWW::Gitea::API::Misc;
  5         27  
  5         227  
8 5     5   2593 use WWW::Gitea::API::Users;
  5         19  
  5         215  
9 5     5   2939 use WWW::Gitea::API::Repos;
  5         30  
  5         254  
10 5     5   2880 use WWW::Gitea::API::Issues;
  5         19  
  5         200  
11 5     5   2681 use WWW::Gitea::API::PullRequests;
  5         22  
  5         206  
12 5     5   2522 use WWW::Gitea::API::Labels;
  5         19  
  5         272  
13 5     5   2599 use WWW::Gitea::API::Milestones;
  5         21  
  5         253  
14 5     5   3234 use WWW::Gitea::API::Releases;
  5         16  
  5         242  
15 5     5   2403 use WWW::Gitea::API::Orgs;
  5         24  
  5         251  
16 5     5   38 use namespace::clean;
  5         9  
  5         22  
17              
18             our $VERSION = '0.003';
19              
20              
21             has url => (
22             is => 'ro',
23             default => sub { $ENV{GITEA_URL} },
24             );
25              
26              
27             has token => (
28             is => 'ro',
29             default => sub { $ENV{GITEA_TOKEN} },
30             );
31              
32              
33             has username => (
34             is => 'ro',
35             default => sub { $ENV{GITEA_USERNAME} },
36             );
37              
38             has password => (
39             is => 'ro',
40             default => sub { $ENV{GITEA_PASSWORD} },
41             );
42              
43              
44             has api_url => (
45             is => 'lazy',
46             builder => sub {
47 7     7   141 my ($self) = @_;
48 7 100       276 my $url = $self->url
49             or croak 'url required (e.g. https://gitea.example.com)';
50 6         38 $url =~ s{/+$}{};
51 6         18 $url =~ s{/api/v1$}{};
52 6         77 return $url . '/api/v1';
53             },
54             );
55              
56              
57             with 'WWW::Gitea::Role::HTTP';
58              
59             has misc => (
60             is => 'lazy',
61 0     0   0 builder => sub { WWW::Gitea::API::Misc->new(client => $_[0]) },
62             );
63              
64              
65             has users => (
66             is => 'lazy',
67 0     0   0 builder => sub { WWW::Gitea::API::Users->new(client => $_[0]) },
68             );
69              
70              
71             has repos => (
72             is => 'lazy',
73 1     1   72 builder => sub { WWW::Gitea::API::Repos->new(client => $_[0]) },
74             );
75              
76              
77             has issues => (
78             is => 'lazy',
79 2     2   3016 builder => sub { WWW::Gitea::API::Issues->new(client => $_[0]) },
80             );
81              
82              
83             has pulls => (
84             is => 'lazy',
85 1     1   17 builder => sub { WWW::Gitea::API::PullRequests->new(client => $_[0]) },
86             );
87              
88              
89             has labels => (
90             is => 'lazy',
91 2     2   67 builder => sub { WWW::Gitea::API::Labels->new(client => $_[0]) },
92             );
93              
94              
95             has milestones => (
96             is => 'lazy',
97 0     0   0 builder => sub { WWW::Gitea::API::Milestones->new(client => $_[0]) },
98             );
99              
100              
101             has releases => (
102             is => 'lazy',
103 3     3   149 builder => sub { WWW::Gitea::API::Releases->new(client => $_[0]) },
104             );
105              
106              
107             has orgs => (
108             is => 'lazy',
109 1     1   19 builder => sub { WWW::Gitea::API::Orgs->new(client => $_[0]) },
110             );
111              
112              
113             sub version {
114 0     0 1   my ($self) = @_;
115 0           return $self->misc->version;
116             }
117              
118              
119             sub current_user {
120 0     0 1   my ($self) = @_;
121 0           return $self->misc->current_user;
122             }
123              
124              
125              
126             1;
127              
128             __END__