This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git
The following commit(s) were added to refs/heads/main by this push:
new 74350f1 Add a table of ignored checks
74350f1 is described below
commit 74350f14a20eb74c91168baac90a2fbea6440b42
Author: Sean B. Palmer <[email protected]>
AuthorDate: Wed Jul 30 14:44:38 2025 +0100
Add a table of ignored checks
---
atr/routes/report.py | 9 ++++-----
atr/storage/readers/checks.py | 7 +++----
atr/storage/types.py | 7 +++++++
atr/templates/report-selected-path.html | 21 +++++++++++++++++++++
4 files changed, 35 insertions(+), 9 deletions(-)
diff --git a/atr/routes/report.py b/atr/routes/report.py
index fe16682..5a00607 100644
--- a/atr/routes/report.py
+++ b/atr/routes/report.py
@@ -59,9 +59,7 @@ async def selected_path(session: routes.CommitterSession,
project_name: str, ver
# Get all check results for this file
async with storage.read() as read:
ragp = read.as_general_public()
- primary_results_list, member_results_list, _ignored_checks = await
ragp.checks.by_release_path(
- release, pathlib.Path(rel_path)
- )
+ check_results = await ragp.checks.by_release_path(release,
pathlib.Path(rel_path))
file_data = {
"filename": pathlib.Path(rel_path).name,
@@ -76,8 +74,9 @@ async def selected_path(session: routes.CommitterSession,
project_name: str, ver
rel_path=rel_path,
package=file_data,
release=release,
- primary_results=primary_results_list,
- member_results=member_results_list,
+ primary_results=check_results.primary_results_list,
+ member_results=check_results.member_results_list,
+ ignored_results=check_results.ignored_checks,
format_file_size=util.format_file_size,
empty_form=await util.EmptyForm.create_form(),
)
diff --git a/atr/storage/readers/checks.py b/atr/storage/readers/checks.py
index 2f517b5..3a158d9 100644
--- a/atr/storage/readers/checks.py
+++ b/atr/storage/readers/checks.py
@@ -24,6 +24,7 @@ from typing import TYPE_CHECKING
import atr.db as db
import atr.models.sql as sql
import atr.storage as storage
+import atr.storage.types as types
if TYPE_CHECKING:
import pathlib
@@ -43,9 +44,7 @@ class GeneralPublic:
self.__data = data
self.__asf_uid = asf_uid
- async def by_release_path(
- self, release: sql.Release, rel_path: pathlib.Path
- ) -> tuple[list[sql.CheckResult], dict[str, list[sql.CheckResult]],
list[sql.CheckResult]]:
+ async def by_release_path(self, release: sql.Release, rel_path:
pathlib.Path) -> types.CheckResults:
if release.committee is None:
raise ValueError("Release has no committee")
if release.latest_revision_number is None:
@@ -86,7 +85,7 @@ class GeneralPublic:
# Order member results by relative path and then by checker name
for member_rel_path in sorted(member_results_list.keys()):
member_results_list[member_rel_path].sort(key=lambda r: r.checker)
- return primary_results_list, member_results_list, ignored_checks
+ return types.CheckResults(primary_results_list, member_results_list,
ignored_checks)
def __check_ignore_match(self, cr: sql.CheckResult, cri:
sql.CheckResultIgnore) -> bool:
# Does not check that the committee name matches
diff --git a/atr/storage/types.py b/atr/storage/types.py
index ca643e9..c250671 100644
--- a/atr/storage/types.py
+++ b/atr/storage/types.py
@@ -225,6 +225,13 @@ class Outcomes[T, E: Exception = Exception]:
self.__outcomes[i] = OutcomeResult[T](result, outcome.name)
[email protected]
+class CheckResults:
+ primary_results_list: list[sql.CheckResult]
+ member_results_list: dict[str, list[sql.CheckResult]]
+ ignored_checks: list[sql.CheckResult]
+
+
class KeyStatus(enum.Flag):
PARSED = 0
INSERTED = enum.auto()
diff --git a/atr/templates/report-selected-path.html
b/atr/templates/report-selected-path.html
index edcc12e..53d4c11 100644
--- a/atr/templates/report-selected-path.html
+++ b/atr/templates/report-selected-path.html
@@ -299,6 +299,27 @@
</table>
{% endif %}
+ <h2>Ignored checks</h2>
+ <p>These checks were ignored by policy.</p>
+ <table class="table table-bordered border mb-3">
+ <thead class="table-light">
+ <tr>
+ <th scope="col">Check</th>
+ <th scope="col">Message</th>
+ <th scope="col">Status</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for ignored_result in ignored_results %}
+ <tr>
+ <td>{{ ignored_result.checker }}</td>
+ <td>{{ ignored_result.message }}</td>
+ <td>{{ ignored_result.status.value|title }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+
<h2>Metadata</h2>
<div class="p-3 mb-4 bg-light border rounded">
<p>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]