diff --git a/lib/CoprStatus.pm b/lib/CoprStatus.pm index 4c32fd8..79263e4 100644 --- a/lib/CoprStatus.pm +++ b/lib/CoprStatus.pm @@ -4,6 +4,7 @@ use warnings; use JSON; use Text::Template; use LWP::UserAgent; +use LWP::Simple; $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0; @@ -24,27 +25,12 @@ sub git_url { return "$domain/$spec_path"; } -sub copr_info { - my ( $user, $repo, $branch ) = @_; - +sub get_specs { my $ua = LWP::UserAgent->new; $ua->timeout(300); $ua->env_proxy; $ua->ssl_opts(SSL_verify_mode => 0x00); - - my $result = $ua->get(copr_monitor_url($user, $repo)); - - my $json = JSON->new->allow_nonref; - - my $dec_result = $json->decode($result->decoded_content); - - foreach(@{$dec_result->{'packages'}}) { - my $package = $_->{'pkg_name'}; - my $status = $_->{'results'}{'epel-7-x86_64'}{'status'}; - my $version = $_->{'results'}{'epel-7-x86_64'}{'pkg_version'}; - $info->{$package}->{$repo."_version"} = $version if $status eq "succeeded"; - } - + my ( $branch ) = @_; foreach my $package (keys %{$info}) { my $git_url = git_url('http://softwarepublico.gov.br', 'gitlab/softwarepublico/softwarepublico/raw//src/pkg-rpm//.spec', @@ -60,9 +46,28 @@ sub copr_info { $version = "$version-$release"; $info->{$package}->{'git_version_'.$branch} = $version; } +} + +sub get_copr_versions { + my ( $user, $repo ) = @_; + my $result = get(copr_monitor_url($user, $repo)); + my $json = JSON->new->allow_nonref; + my $dec_result = $json->decode($result); + foreach(@{$dec_result->{'packages'}}) { + my $package = $_->{'pkg_name'}; + my $status = $_->{'results'}{'epel-7-x86_64'}{'status'}; + my $version = $_->{'results'}{'epel-7-x86_64'}{'pkg_version'}; + $info->{$package}->{$repo."_version"} = $version if $status eq "succeeded"; + } } +sub copr_info { + my ( $user, $repo, $branch ) = @_; + get_copr_versions($user, $repo); + get_specs($branch); +} + sub compare_versions { copr_info('softwarepublico', 'v4', 'stable-4.1'); copr_info('softwarepublico', 'v5', 'master'); diff --git a/t/app.t b/t/app.t index 6f566cd..a81b1d0 100644 --- a/t/app.t +++ b/t/app.t @@ -4,8 +4,8 @@ use Test::More; BEGIN { use_ok('CoprStatus'); } -CoprStatus::copr_info('softwarepubico', 'v4', 'stable-4.1'); -CoprStatus::copr_info('softwarepubico', 'v5', 'master'); +CoprStatus::copr_info('softwarepublico', 'v4', 'stable-4.1'); +CoprStatus::copr_info('softwarepublico', 'v5', 'master'); my $info = $CoprStatus::info; -- libgit2 0.21.2