Commit f2a67b661942e9d84501a3ce4fd76ce7a3677638

Authored by Athos
1 parent adf63596
Exists in master

add tooltip with submitters to copr versions

Showing 2 changed files with 24 additions and 35 deletions   Show diff stats
lib/Copr/Api.pm
@@ -19,10 +19,18 @@ sub get_project_id { @@ -19,10 +19,18 @@ sub get_project_id {
19 sub get_project_builds { 19 sub get_project_builds {
20 my ( $user, $repo ) = @_; 20 my ( $user, $repo ) = @_;
21 my $project_id = get_project_id($user, $repo); 21 my $project_id = get_project_id($user, $repo);
22 - my $builds_json = get("$copr_base_url/api_2/builds?limit=0&project_id=$project_id");  
23 - my $json = JSON->new->allow_nonref;  
24 - my $builds_data = $json->decode($builds_json);  
25 - return @{$builds_data->{builds}}; 22 + my @builds;
  23 + my $limit = 100;
  24 + my $offset = 0;
  25 + while($limit == 100) {
  26 + my $builds_json = get("$copr_base_url/api_2/builds?project_id=$project_id&limit=100&offset=$offset");
  27 + my $json = JSON->new->allow_nonref;
  28 + my $builds_data = $json->decode($builds_json);
  29 + push(@builds, @{$builds_data->{builds}});
  30 + $offset += (scalar @builds);
  31 + $limit = (scalar @builds);
  32 + }
  33 + return @builds;
26 } 34 }
27 35
28 # gets all latest builds of each package 36 # gets all latest builds of each package
lib/CoprStatus.pm
@@ -6,6 +6,7 @@ use YAML::XS 'LoadFile'; @@ -6,6 +6,7 @@ use YAML::XS 'LoadFile';
6 use Text::Template; 6 use Text::Template;
7 use LWP::UserAgent; 7 use LWP::UserAgent;
8 use LWP::Simple; 8 use LWP::Simple;
  9 +use Copr::Api;
9 10
10 $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0; 11 $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
11 12
@@ -13,11 +14,6 @@ $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0; @@ -13,11 +14,6 @@ $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
13 our $info = {}; 14 our $info = {};
14 my $config = LoadFile('config.yaml'); 15 my $config = LoadFile('config.yaml');
15 16
16 -sub copr_monitor_url {  
17 - my ( $user, $repo ) = @_;  
18 - return "http://copr.fedoraproject.org/api/coprs/$user/$repo/monitor/";  
19 -}  
20 -  
21 sub git_url { 17 sub git_url {
22 my ( $domain, $spec_path, $branch, $package ) = @_; 18 my ( $domain, $spec_path, $branch, $package ) = @_;
23 19
@@ -50,12 +46,6 @@ sub download_specs { @@ -50,12 +46,6 @@ sub download_specs {
50 } 46 }
51 } 47 }
52 48
53 -sub download_copr_versions {  
54 - my ( $user, $repo ) = @_;  
55 - `mkdir -p data/copr/$user/$repo`;  
56 - my $result = mirror(copr_monitor_url($user, $repo), "data/copr/$user/$repo/monitor.json");  
57 -}  
58 -  
59 sub get_specs { 49 sub get_specs {
60 my ( $branch ) = @_; 50 my ( $branch ) = @_;
61 foreach my $package (keys %{$info}) { 51 foreach my $package (keys %{$info}) {
@@ -77,17 +67,12 @@ sub get_specs { @@ -77,17 +67,12 @@ sub get_specs {
77 67
78 sub get_copr_versions { 68 sub get_copr_versions {
79 my ( $user, $repo ) = @_; 69 my ( $user, $repo ) = @_;
80 - return unless -e "data/copr/$user/$repo/monitor.json";  
81 - open(my $fh, "<", "data/copr/$user/$repo/monitor.json") or die;  
82 - my $result = do { local $/; <$fh> };  
83 - close($fh);  
84 - my $json = JSON->new->allow_nonref;  
85 - my $dec_result = $json->decode($result);  
86 - foreach(@{$dec_result->{'packages'}}) {  
87 - my $package = $_->{'pkg_name'};  
88 - my $status = $_->{'results'}{'epel-7-x86_64'}{'status'};  
89 - my $version = $_->{'results'}{'epel-7-x86_64'}{'pkg_version'};  
90 - $info->{$package}->{'copr'}->{$repo} = $version if $status eq "succeeded"; 70 + my %latest_packages = Copr::Api::get_latest_packages($user, $repo);
  71 + foreach my $package (keys %latest_packages) {
  72 + my $version = $latest_packages{$package}{version};
  73 + my $submitter = $latest_packages{$package}{submitter};
  74 + $info->{$package}->{'copr'}->{$repo}->{version} = $version;
  75 + $info->{$package}->{'copr'}->{$repo}->{submitter} = $submitter;
91 } 76 }
92 } 77 }
93 78
@@ -105,10 +90,6 @@ sub update_info { @@ -105,10 +90,6 @@ sub update_info {
105 sub update_files { 90 sub update_files {
106 while(1) { 91 while(1) {
107 my $user = $config->{User}; 92 my $user = $config->{User};
108 - foreach my $repo (@{$config->{Repositories}}) {  
109 - download_copr_versions($user, $repo);  
110 - }  
111 -  
112 my $repo_index = 0; 93 my $repo_index = 0;
113 foreach my $branch (@{$config->{Branches}}) { 94 foreach my $branch (@{$config->{Branches}}) {
114 download_specs($branch, $user, ${$config->{Repositories}}[$repo_index]); 95 download_specs($branch, $user, ${$config->{Repositories}}[$repo_index]);
@@ -123,7 +104,7 @@ sub compare_versions { @@ -123,7 +104,7 @@ sub compare_versions {
123 update_info(); 104 update_info();
124 my $match = {}; 105 my $match = {};
125 foreach my $package (keys %{$info}) { 106 foreach my $package (keys %{$info}) {
126 - if($info->{$package}->{'copr'}->{${$config->{Repositories}}[1]} eq $info->{$package}->{'git'}->{${$config->{Branches}}[1]}) { 107 + if($info->{$package}->{'copr'}->{${$config->{Repositories}}[1]}->{version} eq $info->{$package}->{'git'}->{${$config->{Branches}}[1]}) {
127 $match->{$package} = 1; 108 $match->{$package} = 1;
128 } 109 }
129 else { 110 else {
@@ -140,14 +121,14 @@ sub info2html { @@ -140,14 +121,14 @@ sub info2html {
140 foreach my $package (keys %{$info}) { 121 foreach my $package (keys %{$info}) {
141 my $fill_stable_row; 122 my $fill_stable_row;
142 my $fill_dev_row; 123 my $fill_dev_row;
143 - if($info->{$package}->{'copr'}->{${$config->{Repositories}}[0]} eq $info->{$package}->{'git'}->{${$config->{Branches}}[0]}) { 124 + if($info->{$package}->{'copr'}->{${$config->{Repositories}}[0]}->{version} eq $info->{$package}->{'git'}->{${$config->{Branches}}[0]}) {
144 $fill_stable_row = "success"; 125 $fill_stable_row = "success";
145 } 126 }
146 else { 127 else {
147 $fill_stable_row = "danger"; 128 $fill_stable_row = "danger";
148 } 129 }
149 130
150 - if($info->{$package}->{'copr'}->{${$config->{Repositories}}[1]} eq $info->{$package}->{'git'}->{${$config->{Branches}}[1]}) { 131 + if($info->{$package}->{'copr'}->{${$config->{Repositories}}[1]}->{version} eq $info->{$package}->{'git'}->{${$config->{Branches}}[1]}) {
151 $fill_dev_row = "success"; 132 $fill_dev_row = "success";
152 } 133 }
153 else { 134 else {
@@ -157,9 +138,9 @@ sub info2html { @@ -157,9 +138,9 @@ sub info2html {
157 $table_entries .= "<tr> 138 $table_entries .= "<tr>
158 <td><b>$package</b></td> 139 <td><b>$package</b></td>
159 <td>$info->{$package}->{'git'}->{${$config->{Branches}}[0]}</td> 140 <td>$info->{$package}->{'git'}->{${$config->{Branches}}[0]}</td>
160 - <td class=\"$fill_stable_row\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Submitter:\">$info->{$package}->{'copr'}->{${$config->{Repositories}}[0]}</td> 141 + <td class=\"$fill_stable_row\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Submitter: $info->{$package}->{'copr'}->{${$config->{Repositories}}[0]}->{submitter}\">$info->{$package}->{'copr'}->{${$config->{Repositories}}[0]}->{version}</td>
161 <td>$info->{$package}->{'git'}->{${$config->{Branches}}[1]}</td> 142 <td>$info->{$package}->{'git'}->{${$config->{Branches}}[1]}</td>
162 - <td class=\"$fill_dev_row\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Submitter:\">$info->{$package}->{'copr'}->{${$config->{Repositories}}[1]}</td> 143 + <td class=\"$fill_dev_row\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Submitter: $info->{$package}->{'copr'}->{${$config->{Repositories}}[1]}->{submitter}\">$info->{$package}->{'copr'}->{${$config->{Repositories}}[1]}->{version}</td>
163 </tr>"; 144 </tr>";
164 } 145 }
165 146