Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openQA for openSUSE:Factory checked 
in at 2026-04-10 17:52:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA (Old)
 and      /work/SRC/openSUSE:Factory/.openQA.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openQA"

Fri Apr 10 17:52:48 2026 rev:834 rq:1345676 version:5.1775753240.e466faa2

Changes:
--------
--- /work/SRC/openSUSE:Factory/openQA/openQA.changes    2026-04-08 
17:18:00.785553336 +0200
+++ /work/SRC/openSUSE:Factory/.openQA.new.21863/openQA.changes 2026-04-10 
18:01:36.223125622 +0200
@@ -1,0 +2,7 @@
+Thu Apr 09 16:47:28 UTC 2026 - [email protected]
+
+- Update to version 5.1775753240.e466faa2:
+  * fix: Reference schema files from the installed package for helm lint
+  * feat: limit job results on group overview and dashboard
+
+-------------------------------------------------------------------

Old:
----
  openQA-5.1775643384.e9cf2643.obscpio

New:
----
  openQA-5.1775753240.e466faa2.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openQA-client-test.spec ++++++
--- /var/tmp/diff_new_pack.I1oBdo/_old  2026-04-10 18:01:37.579181457 +0200
+++ /var/tmp/diff_new_pack.I1oBdo/_new  2026-04-10 18:01:37.579181457 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-client
 Name:           %{short_name}-test
-Version:        5.1775643384.e9cf2643
+Version:        5.1775753240.e466faa2
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.I1oBdo/_old  2026-04-10 18:01:37.623183268 +0200
+++ /var/tmp/diff_new_pack.I1oBdo/_new  2026-04-10 18:01:37.627183433 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-devel
 Name:           %{short_name}-test
-Version:        5.1775643384.e9cf2643
+Version:        5.1775753240.e466faa2
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-test.spec ++++++
--- /var/tmp/diff_new_pack.I1oBdo/_old  2026-04-10 18:01:37.663184915 +0200
+++ /var/tmp/diff_new_pack.I1oBdo/_new  2026-04-10 18:01:37.663184915 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA
 Name:           %{short_name}-test
-Version:        5.1775643384.e9cf2643
+Version:        5.1775753240.e466faa2
 Release:        0
 Summary:        Test package for openQA
 License:        GPL-2.0-or-later

++++++ openQA-worker-test.spec ++++++
--- /var/tmp/diff_new_pack.I1oBdo/_old  2026-04-10 18:01:37.699186398 +0200
+++ /var/tmp/diff_new_pack.I1oBdo/_new  2026-04-10 18:01:37.703186562 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-worker
 Name:           %{short_name}-test
-Version:        5.1775643384.e9cf2643
+Version:        5.1775753240.e466faa2
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA.spec ++++++
--- /var/tmp/diff_new_pack.I1oBdo/_old  2026-04-10 18:01:37.739188045 +0200
+++ /var/tmp/diff_new_pack.I1oBdo/_new  2026-04-10 18:01:37.743188209 +0200
@@ -99,7 +99,7 @@
 %define devel_requires %devel_no_selenium_requires chromedriver
 
 Name:           openQA
-Version:        5.1775643384.e9cf2643
+Version:        5.1775753240.e466faa2
 Release:        0
 Summary:        The openQA web-frontend, scheduler and tools
 License:        GPL-2.0-or-later

++++++ openQA-5.1775643384.e9cf2643.obscpio -> 
openQA-5.1775753240.e466faa2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1775643384.e9cf2643/etc/openqa/openqa.ini 
new/openQA-5.1775753240.e466faa2/etc/openqa/openqa.ini
--- old/openQA-5.1775643384.e9cf2643/etc/openqa/openqa.ini      2026-04-08 
12:16:24.000000000 +0200
+++ new/openQA-5.1775753240.e466faa2/etc/openqa/openqa.ini      2026-04-09 
18:47:20.000000000 +0200
@@ -326,6 +326,10 @@
 ## Initial number of job group names to show in summary header box on tests
 ## overview page (clickable to expand to show all)
 #tests_overview_summary_max_groups = 7
+
+## Maximum number of jobs to include in job group overview and dashboard pages
+## (to prevent performance issues)
+#job_groups_overview_max_jobs = 10000
 ## Default number of jobs to include in table of finished jobs on "All tests"
 ## page
 #all_tests_default_finished_jobs = 500
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1775643384.e9cf2643/lib/OpenQA/BuildResults.pm 
new/openQA-5.1775753240.e466faa2/lib/OpenQA/BuildResults.pm
--- old/openQA-5.1775643384.e9cf2643/lib/OpenQA/BuildResults.pm 2026-04-08 
12:16:24.000000000 +0200
+++ new/openQA-5.1775753240.e466faa2/lib/OpenQA/BuildResults.pm 2026-04-09 
18:47:20.000000000 +0200
@@ -104,15 +104,21 @@
     return filter_subgroups($group, $subgroup_filter);
 }
 
-sub compute_build_results ($group, $limit, $time_limit_days, $tags, 
$subgroup_filter, $show_tags) {
+sub compute_build_results ($group, $limit, $time_limit_days, $tags, 
$subgroup_filter, $show_tags,
+    $max_jobs_limit = undef)
+{
     # find relevant child groups taking filter into account
     my $child_groups = find_child_groups($group, $subgroup_filter);
     my $group_ids = $child_groups->{group_ids};
     my $children = $child_groups->{children};
+
+    my $total_jobs_seen = 0;
+    my $limit_exceeded = 0;
     my @sorted_results;
     my %result = (
         build_results => \@sorted_results,
         max_jobs => 0,
+        limit_exceeded => 0,
         children => [map { {id => $_->id, name => $_->name} } @$children],
         group => {
             id => $group->id,
@@ -163,8 +169,15 @@
     my $max_jobs = 0;
     my $newest = ($buildver_sort_mode == BUILD_SORT_BY_OLDEST_JOB || 
$buildver_sort_mode == BUILD_SORT_BY_NAME) ? 0 : 1;
     for my $build (@builds) {
-        last if defined($limit) && (--$limit < 0);
+        if (defined $max_jobs_limit && $total_jobs_seen >= $max_jobs_limit) {
+            $limit_exceeded = 1;
+            last;
+        }
+        last if defined $limit && (--$limit < 0);
         my ($version, $buildnr) = ($build->VERSION, $build->BUILD);
+        my $remaining = defined $max_jobs_limit ? $max_jobs_limit - 
$total_jobs_seen : undef;
+        my %search_opts = (order_by => 'me.id DESC');
+        $search_opts{rows} = $remaining + 1 if defined $remaining;
         my $jobs = $jobs_resultset->search(
             {
                 VERSION => $version,
@@ -172,7 +185,8 @@
                 group_id => {in => $group_ids},
                 clone_id => undef,
             },
-            {order_by => 'me.id DESC'});
+            \%search_opts
+        );
         my %jr = (
             key => $build->{key},
             build => $buildnr,
@@ -182,10 +196,15 @@
         init_job_figures(\%jr);
         init_job_figures($jr{children}->{$_->id} = {}) for @$children;
         my %seen;
+        my @all_jobs = $jobs->all;
+        if (defined $remaining && @all_jobs > $remaining) {
+            $limit_exceeded = 1;
+            pop @all_jobs;
+        }
         my @jobs = map {
             my $key = $_->TEST . '-' . $_->ARCH . '-' . $_->FLAVOR . '-' . 
($_->MACHINE // '');
             $seen{$key}++ ? () : $_;
-        } $jobs->all;
+        } @all_jobs;
         next unless @jobs;
         my $comment_data = 
$group->result_source->schema->resultset('Comments')->comment_data_for_jobs(\@jobs);
         for my $job (@jobs) {
@@ -206,6 +225,7 @@
                 add_review_badge($child);
             }
         }
+        $total_jobs_seen += $jr{total};
         $jr{date} = delete $jr{oldest_newest};
         $jr{escaped_version} = $jr{version};
         $jr{escaped_version} =~ s/\W/_/g;
@@ -217,6 +237,8 @@
         $max_jobs = $jr{total} if ($jr{total} > $max_jobs);
     }
     $result{max_jobs} = $max_jobs;
+    $result{total_jobs} = $total_jobs_seen;
+    $result{limit_exceeded} = $limit_exceeded ? 1 : 0;
     _map_tags_into_build($result{build_results}, $show_tags) if $show_tags;
     return \%result;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1775643384.e9cf2643/lib/OpenQA/Setup.pm 
new/openQA-5.1775753240.e466faa2/lib/OpenQA/Setup.pm
--- old/openQA-5.1775643384.e9cf2643/lib/OpenQA/Setup.pm        2026-04-08 
12:16:24.000000000 +0200
+++ new/openQA-5.1775753240.e466faa2/lib/OpenQA/Setup.pm        2026-04-09 
18:47:20.000000000 +0200
@@ -268,6 +268,7 @@
             generic_max_limit => 100000,
             tests_overview_max_jobs => 2000,
             tests_overview_summary_max_groups => 7,
+            job_groups_overview_max_jobs => 10000,
             all_tests_default_finished_jobs => 500,
             all_tests_max_finished_jobs => 5000,
             list_templates_default_limit => 5000,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1775643384.e9cf2643/lib/OpenQA/WebAPI/Controller/API/V1/JobGroup.pm
 
new/openQA-5.1775753240.e466faa2/lib/OpenQA/WebAPI/Controller/API/V1/JobGroup.pm
--- 
old/openQA-5.1775643384.e9cf2643/lib/OpenQA/WebAPI/Controller/API/V1/JobGroup.pm
    2026-04-08 12:16:24.000000000 +0200
+++ 
new/openQA-5.1775753240.e466faa2/lib/OpenQA/WebAPI/Controller/API/V1/JobGroup.pm
    2026-04-09 18:47:20.000000000 +0200
@@ -401,10 +401,12 @@
     my $show_tags = $validation->param('show_tags') // $only_tagged;
 
     my $tags = $show_tags ? $group->tags : undef;
+    my $max_jobs_limit = 
$self->app->config->{misc_limits}->{job_groups_overview_max_jobs};
     my $cbr
       = OpenQA::BuildResults::compute_build_results($group, $limit_builds,
         $time_limit_days, $only_tagged ? $tags : undef,
-        [], $tags);
+        [], $tags, $max_jobs_limit);
+    $cbr->{limit_exceeded} = $cbr->{limit_exceeded} ? $max_jobs_limit : 0;
     $self->render(json => $cbr);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1775643384.e9cf2643/lib/OpenQA/WebAPI/Controller/Main.pm 
new/openQA-5.1775753240.e466faa2/lib/OpenQA/WebAPI/Controller/Main.pm
--- old/openQA-5.1775643384.e9cf2643/lib/OpenQA/WebAPI/Controller/Main.pm       
2026-04-08 12:16:24.000000000 +0200
+++ new/openQA-5.1775753240.e466faa2/lib/OpenQA/WebAPI/Controller/Main.pm       
2026-04-09 18:47:20.000000000 +0200
@@ -38,20 +38,36 @@
 
     my $groups = $self->stash('job_groups_and_parents');
 
+    my $max_jobs_limit = 
$self->app->config->{misc_limits}->{job_groups_overview_max_jobs};
+    my $total_jobs_seen = 0;
+    my $limit_reached = 0;
     my @results;
     try {
         for my $group (@$groups) {
             if (@$group_params) {
                 next unless grep { $_ eq '' || $group->matches_nested($_) } 
@$group_params;
             }
+            if (defined $max_jobs_limit && $total_jobs_seen >= 
$max_jobs_limit) {
+                $limit_reached = 1;
+                last;
+            }
             my $tags = $show_tags || $only_tagged ? $group->tags : undef;
-            my $build_results
-              = OpenQA::BuildResults::compute_build_results($group, 
$limit_builds, $time_limit_days,
-                $only_tagged ? $tags : undef,
-                $group_params, $show_tags ? $tags : undef);
+            my $build_results = OpenQA::BuildResults::compute_build_results(
+                $group, $limit_builds, $time_limit_days, $only_tagged ? $tags 
: undef,
+                $group_params,
+                $show_tags ? $tags : undef,
+                defined $max_jobs_limit ? $max_jobs_limit - $total_jobs_seen : 
undef
+            );
 
             my $build_results_for_group = $build_results->{build_results};
-            push @results, $build_results if @{$build_results_for_group};
+            if (@{$build_results_for_group}) {
+                push @results, $build_results;
+                $total_jobs_seen += $build_results->{total_jobs};
+            }
+            if ($build_results->{limit_exceeded}) {
+                $limit_reached = 1;
+                last;
+            }
         }
     }
     catch ($e) {
@@ -62,10 +78,11 @@
     $self->stash(
         default_expanded => $default_expanded,
         results => \@results,
+        limit_exceeded => $limit_reached ? $max_jobs_limit : 0,
     );
 
     $self->respond_to(
-        json => {json => {results => \@results}},
+        json => {json => {results => \@results, limit_exceeded => 
$limit_reached ? $max_jobs_limit : 0}},
         html => {template => 'main/dashboard_build_results'});
 }
 
@@ -137,12 +154,13 @@
     my @pinned_comments = grep { $_->user->is_operator } 
$comments->search({text => $pinned_cond})->all;
 
     my $tags = $group->tags;
+    my $max_jobs_limit = 
$self->app->config->{misc_limits}->{job_groups_overview_max_jobs};
     my $cbr;
     try {
         $cbr
           = OpenQA::BuildResults::compute_build_results($group, $limit_builds,
             $time_limit_days, $only_tagged ? $tags : undef,
-            $group_params, $tags);
+            $group_params, $tags, $max_jobs_limit);
     }
     catch ($e) {
         die $e unless $e =~ qr/^invalid regex: /;
@@ -150,9 +168,14 @@
     }
     my $build_results = $cbr->{build_results};
     my $max_jobs = $cbr->{max_jobs};
+    my $limit_exceeded = $cbr->{limit_exceeded};
 
     $self->stash(children => $cbr->{children});
-    $self->stash(build_results => $build_results, max_jobs => $max_jobs);
+    $self->stash(
+        build_results => $build_results,
+        max_jobs => $max_jobs,
+        limit_exceeded => $limit_exceeded ? $max_jobs_limit : 0
+    );
 
     my $is_parent_group = $group->can('children');
     my $comment_context = $is_parent_group ? 'parent_group' : 'group';
@@ -162,7 +185,8 @@
         name => $group->name,
         full_name => $group->name,
         is_parent => $is_parent_group,
-        rendered_description => $group->rendered_description
+        rendered_description => $group->rendered_description,
+        limit_exceeded => $limit_exceeded ? $max_jobs_limit : 0,
     };
     if (!$is_parent_group && (my $parent = $group->parent)) {
         $group_hash->{parent_id} = $parent->id;
@@ -190,6 +214,7 @@
                     group => $group_hash,
                     build_results => $build_results,
                     max_jobs => $max_jobs,
+                    limit_exceeded => $limit_exceeded ? $max_jobs_limit : 0,
                     description => $group->description,
                     comments => \@comments,
                     pinned_comments => \@pinned_comments
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1775643384.e9cf2643/t/22-dashboard.t 
new/openQA-5.1775753240.e466faa2/t/22-dashboard.t
--- old/openQA-5.1775643384.e9cf2643/t/22-dashboard.t   2026-04-08 
12:16:24.000000000 +0200
+++ new/openQA-5.1775753240.e466faa2/t/22-dashboard.t   2026-04-09 
18:47:20.000000000 +0200
@@ -17,6 +17,8 @@
 use OpenQA::Constants qw(BUILD_SORT_BY_NEWEST_JOB BUILD_SORT_BY_OLDEST_JOB);
 use OpenQA::Utils qw(regex_match);
 use Mojo::File qw(tempfile);
+use Date::Format;
+use Time::Seconds qw(ONE_HOUR);
 
 # init test case
 my $test_case = OpenQA::Test::Case->new;
@@ -636,4 +638,88 @@
     is $jr->{total}, 1, 'Total jobs incremented';
 };
 
+subtest 'Group overview limit' => sub {
+    
$t->get_ok('/group_overview/1001')->status_is(200)->element_exists_not('#max-jobs-limit');
+    $t->app->config->{misc_limits}->{job_groups_overview_max_jobs} = 1;
+    
$t->get_ok('/group_overview/1001')->status_is(200)->element_exists('#max-jobs-limit')
+      ->text_like('#max-jobs-limit', qr/Only 1 results included/);
+};
+
+subtest 'Parent group overview limit' => sub {
+    
$t->get_ok('/parent_group_overview/1')->status_is(200)->element_exists('#max-jobs-limit')
+      ->text_like('#max-jobs-limit', qr/Only 1 results included/);
+};
+
+subtest 'Dashboard limit' => sub {
+    
$t->get_ok('/dashboard_build_results')->status_is(200)->element_exists('#max-jobs-limit')
+      ->text_like('#max-jobs-limit', qr/Only 1 results included/);
+};
+
+subtest 'API V1 JobGroup limit' => sub {
+    
$t->get_ok('/api/v1/job_groups/1001/build_results')->status_is(200)->json_is('/limit_exceeded'
 => 1);
+};
+
+subtest 'Dashboard limit reached between groups' => sub {
+    # 'opensuse' (1001) has 2 jobs in the first 2 builds (87.5011 and 
0048@0815)
+    # when clones are not included.
+    $t->app->config->{misc_limits}->{job_groups_overview_max_jobs} = 2;
+    
$t->get_ok('/dashboard_build_results.json?limit_builds=2')->status_is(200)->json_is('/limit_exceeded'
 => 2);
+    
$t->get_ok('/dashboard_build_results?limit_builds=2')->status_is(200)->element_exists('#max-jobs-limit')
+      ->text_like('#max-jobs-limit', qr/Only 2 results included/);
+
+    # Coverage for check between groups
+    my $group_aaa = $job_groups->create({name => 'AAA', sort_order => -1});
+    $jobs->create(
+        {
+            group_id => $group_aaa->id,
+            priority => 50,
+            result => 'passed',
+            TEST => 'test',
+            state => 'done',
+            BUILD => '1',
+            VERSION => '1',
+            ARCH => 'x86_64',
+            FLAVOR => 'flavor',
+            MACHINE => 'machine',
+        });
+    $t->app->config->{misc_limits}->{job_groups_overview_max_jobs} = 1;
+    
$t->get_ok('/dashboard_build_results.json')->status_is(200)->json_is('/limit_exceeded'
 => 1);
+    # AAA should be present, others not
+    my $res = $t->tx->res->json;
+    is scalar @{$res->{results}}, 1, 'Only one group returned';
+    is $res->{results}->[0]->{group}->{name}, 'AAA', 'The correct group is 
returned';
+};
+
+subtest 'Group overview JSON and comments coverage' => sub {
+    $opensuse_group->comments->create({text => 'some comment', user_id => 
99901});
+    $opensuse_group->comments->create({text => 'pinned-description: some 
info', user_id => 99901});
+    $t->app->config->{misc_limits}->{job_groups_overview_max_jobs} = 2;
+    
$t->get_ok('/group_overview/1001.json')->status_is(200)->json_has('/group')->json_has('/build_results')
+      ->json_is('/limit_exceeded' => 2);
+    my $res = $t->tx->res->json;
+    ok scalar @{$res->{comments}} > 0, 'comments are returned';
+    ok scalar @{$res->{pinned_comments}} > 0, 'pinned comments are returned';
+};
+
+subtest 'Parent group overview JSON' => sub {
+    
$t->get_ok('/parent_group_overview/1.json')->status_is(200)->json_has('/group')->json_has('/build_results')
+      ->json_is('/limit_exceeded' => 2);
+};
+
+subtest 'dashboard_build_results coverage' => sub {
+    my $build_results_mock = Test::MockModule->new('OpenQA::BuildResults');
+    $build_results_mock->redefine(
+        compute_build_results => sub { die 'invalid regex: fake regex error 
after validation' });
+    $t->get_ok('/group_overview/1001')->status_is(400)
+      ->content_like(qr/invalid regex: fake regex error after validation/i);
+    $build_results_mock->unmock('compute_build_results');
+
+    $t->get_ok('/dashboard_build_results.json?group=opensuse')->status_is(200);
+    $t->get_ok('/dashboard_build_results.json?show_tags=1')->status_is(200);
+    $t->get_ok('/dashboard_build_results.json?only_tagged=1')->status_is(200);
+    $t->get_ok('/dashboard_build_results.json')->status_is(200);
+    my $res = $t->tx->res->json;
+    ok scalar @{$res->{results}} > 0, 'results are returned';
+};
+
 done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1775643384.e9cf2643/t/config.t 
new/openQA-5.1775753240.e466faa2/t/config.t
--- old/openQA-5.1775643384.e9cf2643/t/config.t 2026-04-08 12:16:24.000000000 
+0200
+++ new/openQA-5.1775753240.e466faa2/t/config.t 2026-04-09 18:47:20.000000000 
+0200
@@ -45,7 +45,6 @@
     $app->mode('test');
     my $config = read_config($app, 'reading config from default with mode 
test');
     is length($config->{_openid_secret}), 16, 'config has openid_secret';
-
     my $test_config = dclone(OpenQA::Setup::default_config());
     # apply transformations done in read_config
     $test_config->{global}->{recognized_referers} = [];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1775643384.e9cf2643/templates/webapi/layouts/limit_warning.html.ep 
new/openQA-5.1775753240.e466faa2/templates/webapi/layouts/limit_warning.html.ep
--- 
old/openQA-5.1775643384.e9cf2643/templates/webapi/layouts/limit_warning.html.ep 
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/openQA-5.1775753240.e466faa2/templates/webapi/layouts/limit_warning.html.ep 
    2026-04-09 18:47:20.000000000 +0200
@@ -0,0 +1,5 @@
+% if (my $limit_exceeded = stash('limit_exceeded')) {
+  <div class="alert alert-warning" id="max-jobs-limit" role="alert">
+    <i class="fa-solid fa-circle-exclamation"></i> Only <%= $limit_exceeded %> 
results included, please narrow down your search parameters.
+  </div>
+% }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1775643384.e9cf2643/templates/webapi/main/dashboard_build_results.html.ep
 
new/openQA-5.1775753240.e466faa2/templates/webapi/main/dashboard_build_results.html.ep
--- 
old/openQA-5.1775643384.e9cf2643/templates/webapi/main/dashboard_build_results.html.ep
      2026-04-08 12:16:24.000000000 +0200
+++ 
new/openQA-5.1775753240.e466faa2/templates/webapi/main/dashboard_build_results.html.ep
      2026-04-09 18:47:20.000000000 +0200
@@ -1,3 +1,5 @@
+%= include 'layouts/limit_warning'
+
 % for my $groupresults (@$results) {
     % my $group         = $groupresults->{group};
     % my $build_results = $groupresults->{build_results};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1775643384.e9cf2643/templates/webapi/main/group_overview.html.ep 
new/openQA-5.1775753240.e466faa2/templates/webapi/main/group_overview.html.ep
--- 
old/openQA-5.1775643384.e9cf2643/templates/webapi/main/group_overview.html.ep   
    2026-04-08 12:16:24.000000000 +0200
+++ 
new/openQA-5.1775753240.e466faa2/templates/webapi/main/group_overview.html.ep   
    2026-04-09 18:47:20.000000000 +0200
@@ -10,6 +10,8 @@
     alignBuildLabels();
 % end
 
+%= include 'layouts/limit_warning'
+
 % if (is_admin) {
     <form action="<%= url_for('admin_job_templates', groupid => $group->{id}) 
%>" class="corner-buttons">
         <button type="submit" class="btn btn-light" title="Edit media, 
description, and other properties">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1775643384.e9cf2643/templates/webapi/main/parent_group_overview.html.ep
 
new/openQA-5.1775753240.e466faa2/templates/webapi/main/parent_group_overview.html.ep
--- 
old/openQA-5.1775643384.e9cf2643/templates/webapi/main/parent_group_overview.html.ep
        2026-04-08 12:16:24.000000000 +0200
+++ 
new/openQA-5.1775753240.e466faa2/templates/webapi/main/parent_group_overview.html.ep
        2026-04-09 18:47:20.000000000 +0200
@@ -9,6 +9,8 @@
     setupParentGroupOverviewAssets('<%= $group->{id} %>');
 % end
 
+%= include 'layouts/limit_warning'
+
 % if (is_admin) {
     <form action="<%= url_for('admin_edit_parent_group', groupid => 
$group->{id}) %>" class="corner-buttons">
         <button type="submit" class="btn btn-light" title="Edit description, 
and other properties">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1775643384.e9cf2643/templates/webapi/test/overview.html.ep 
new/openQA-5.1775753240.e466faa2/templates/webapi/test/overview.html.ep
--- old/openQA-5.1775643384.e9cf2643/templates/webapi/test/overview.html.ep     
2026-04-08 12:16:24.000000000 +0200
+++ new/openQA-5.1775753240.e466faa2/templates/webapi/test/overview.html.ep     
2026-04-09 18:47:20.000000000 +0200
@@ -9,11 +9,7 @@
   setupOverview({metaMapping: <%== Mojo::JSON::to_json($meta_mapping) %>});
 % end
 
-% if ($limit_exceeded) {
-  <div class="alert alert-warning" id="max-jobs-limit" role="alert">
-    <i class="fa-solid fa-circle-exclamation"></i> Only <%= $limit_exceeded %> 
results included, please narrow down your search parameters.
-  </div>
-% }
+%= include 'layouts/limit_warning'
 <div>
     <h2>Test result overview</h2>
     <div id="summary" class="card <%= ($aggregate_status =~ 
/^(?:failed|not_complete)$/) ? 'border-danger' : 'border-success' %>">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1775643384.e9cf2643/tools/test_helm_chart 
new/openQA-5.1775753240.e466faa2/tools/test_helm_chart
--- old/openQA-5.1775643384.e9cf2643/tools/test_helm_chart      2026-04-08 
12:16:24.000000000 +0200
+++ new/openQA-5.1775753240.e466faa2/tools/test_helm_chart      2026-04-09 
18:47:20.000000000 +0200
@@ -4,9 +4,24 @@
 which helm > /dev/null || echo "Error: Helm is not installed"
 which ct > /dev/null || echo "Error: ct is not installed"
 
-cd container/helm
+cd container/helm/
+
+ct_common_args=()
+# Reference schema files from the installed package if they are not in the 
default locations
+for schema in chart_schema.yaml lintconf.yaml; do
+    if [[ ! -f "$schema" && ! -f "$HOME/.ct/$schema" && ! -f "/etc/ct/$schema" 
]]; then
+        pkg_schema="/usr/share/doc/packages/chart-testing/$schema"
+        if [[ -f "$pkg_schema" ]]; then
+            if [[ "$schema" == "chart_schema.yaml" ]]; then
+                ct_common_args+=(--chart-yaml-schema "$pkg_schema")
+            else
+                ct_common_args+=(--lint-conf "$pkg_schema")
+            fi
+        fi
+    fi
+done
 
 ct_extra=(--helm-extra-set-args "--set=gateway.enabled=false 
--set=image.pullPolicy=IfNotPresent --set=worker.image.pullPolicy=IfNotPresent")
-ct_install_args=()
-[[ "${1:-lint}" != "lint" ]] && ct_install_args=("${ct_extra[@]}")
+ct_install_args=("${ct_common_args[@]}")
+[[ "${1:-lint}" != "lint" ]] && ct_install_args+=("${ct_extra[@]}")
 ct "${1:-lint}" --debug --all --config ct.yaml "${ct_install_args[@]}"

++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.I1oBdo/_old  2026-04-10 18:01:52.155781631 +0200
+++ /var/tmp/diff_new_pack.I1oBdo/_new  2026-04-10 18:01:52.175782455 +0200
@@ -1,5 +1,5 @@
 name: openQA
-version: 5.1775643384.e9cf2643
-mtime: 1775643384
-commit: e9cf2643a809d4429843d924729fa374c5a09e88
+version: 5.1775753240.e466faa2
+mtime: 1775753240
+commit: e466faa222210dc534a7f484da9a1d5aa01686e1
 

Reply via email to