You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tooling.apache.org by ak...@apache.org on 2026/04/21 08:26:21 UTC
(tooling-agents) branch main updated: Notate what severity threshold was applied
This is an automated email from the ASF dual-hosted git repository.
andrewmusselman pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-agents.git
The following commit(s) were added to refs/heads/main by this push:
new 98d9411 Notate what severity threshold was applied
98d9411 is described below
commit 98d9411969a1f45b252c056637a36bd80c772750
Author: Andrew Musselman <an...@gmail.com>
AuthorDate: Tue Apr 21 01:26:07 2026 -0700
Notate what severity threshold was applied
---
repos/apache/ASVS/README.md | 5 +++--
.../ASVS/agents/consolidate_asvs_security_audit_reports.py | 10 ++++++++--
repos/apache/ASVS/agents/orchestrate_asvs_audit_to_github.py | 1 +
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/repos/apache/ASVS/README.md b/repos/apache/ASVS/README.md
index 47e9a31..6164c11 100644
--- a/repos/apache/ASVS/README.md
+++ b/repos/apache/ASVS/README.md
@@ -95,7 +95,7 @@ The main entry point. Calls all other agents.
| `outputToken` | yes | PAT with write access to output repo |
| `outputDirectory` | yes | Base directory — repo name and commit hash are appended automatically |
| `discover` | no | `"true"` or `"false"` (default `"true"`) |
-| `level` | no | `"L1"`, `"L2"`, or `"L3"` |
+| `level` | no | `"L1"`, `"L2"`, or `"L3"` (default `"L3"` — use `"L1"` for a quick baseline audit) |
| `severityThreshold` | no | `"CRITICAL"`, `"HIGH"`, `"MEDIUM"`, or empty |
| `consolidate` | no | `"true"` or `"false"` (default `"true"`) |
@@ -169,7 +169,8 @@ Reads per-section reports from GitHub, deduplicates, produces consolidated repor
|---|---|---|
| `inputText` | yes | Multi-line: `repo:`, `pat:`, `directories:`, `output:` |
| `domainGroups` | no | JSON string mapping domain names to ASVS section arrays |
-| `level` | no | `"L1"`, `"L2"`, or `"L3"` (default `"L3"`) |
+| `level` | no | `"L1"`, `"L2"`, or `"L3"` (default `"L3"` — use `"L1"` for a quick baseline audit) |
+| `severityThreshold` | no | Included in report metadata when provided |
**Output:** `outputText` — summary. Pushes `consolidated.md` and `issues.md` to GitHub.
diff --git a/repos/apache/ASVS/agents/consolidate_asvs_security_audit_reports.py b/repos/apache/ASVS/agents/consolidate_asvs_security_audit_reports.py
index c54c76d..465c095 100644
--- a/repos/apache/ASVS/agents/consolidate_asvs_security_audit_reports.py
+++ b/repos/apache/ASVS/agents/consolidate_asvs_security_audit_reports.py
@@ -1,5 +1,4 @@
# consolidate_asvs_security_audit_reports
-
from agent_factory.remote_mcp_client import RemoteMCPClient
from services.llm_service import call_llm
import httpx
@@ -43,6 +42,7 @@ async def run(input_dict, tools):
input_text = input_dict.get("inputText", "")
domain_groups_raw = input_dict.get("domainGroups", "")
level = input_dict.get("level", "L3")
+ severity_threshold = input_dict.get("severityThreshold", "")
# Normalize level
level = level.strip().upper()
@@ -796,13 +796,17 @@ If no duplicates: {"merges": []}"""
# Executive summary (Opus)
print(f"Generating executive summary...")
+ severity_scope = f"Severity threshold: {severity_threshold} and above" if severity_threshold else "Severity threshold: none (all findings included)"
+
exec_summary_prompt = f"""Generate the opening sections of a security audit consolidated report in Markdown.
Audit scope: up to {level}
+{severity_scope}
Repository: {owner}/{repo}
Directories: {', '.join(directories)}
ASVS Level: {level}
+{severity_scope}
Commit: {commit_info}
Date: {audit_date}
Auditor: Tooling Agents
@@ -821,7 +825,7 @@ Finding titles:
Positive controls: {json.dumps(all_positive_controls[:50], indent=2, default=str)}
Generate ONLY:
-1. Report Metadata table (Repository, ASVS Level, Commit, Date, Auditor, Source Reports, Total Findings)
+1. Report Metadata table (Repository, ASVS Level, Severity Threshold, Commit, Date, Auditor, Source Reports, Total Findings)
2. Executive Summary with severity distribution, level coverage, top 5 risks, positive controls
End with ---."""
@@ -873,6 +877,8 @@ End with ---."""
# Section 7: Level Coverage (deterministic)
s7 = ["\n\n## 7. Level Coverage Analysis\n", f"\n**Audit scope:** up to {level}\n"]
+ if severity_threshold:
+ s7.append(f"**Severity threshold:** {severity_threshold} and above\n")
s7.append("| Level | Sections Audited | Findings Found |")
s7.append("|-------|-----------------|----------------|")
for lv_name, lv_num in [("L1", 1), ("L2", 2), ("L3", 3)]:
diff --git a/repos/apache/ASVS/agents/orchestrate_asvs_audit_to_github.py b/repos/apache/ASVS/agents/orchestrate_asvs_audit_to_github.py
index d439e44..5c5d1ff 100644
--- a/repos/apache/ASVS/agents/orchestrate_asvs_audit_to_github.py
+++ b/repos/apache/ASVS/agents/orchestrate_asvs_audit_to_github.py
@@ -288,6 +288,7 @@ async def run(input_dict, tools):
]),
"domainGroups": json.dumps(domain_groups),
"level": level or "L3",
+ "severityThreshold": severity_threshold,
}
)
print(f" Consolidation done", flush=True)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tooling.apache.org
For additional commands, e-mail: commits-help@tooling.apache.org