secure-code-agent 0.12.4__tar.gz → 0.12.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {secure_code_agent-0.12.4/src/secure_code_agent.egg-info → secure_code_agent-0.12.5}/PKG-INFO +2 -2
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/README.md +1 -1
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5/src/secure_code_agent.egg-info}/PKG-INFO +2 -2
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/__init__.py +1 -1
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/osv_scanner.py +14 -2
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/LICENSE +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/pyproject.toml +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/setup.cfg +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_agent.egg-info/SOURCES.txt +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_agent.egg-info/dependency_links.txt +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_agent.egg-info/entry_points.txt +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_agent.egg-info/requires.txt +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_agent.egg-info/top_level.txt +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/baseline.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/cli.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/config.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/data/semgrep-offline.yaml +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/demo.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/findings.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/git_tools.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/history.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/instructions.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/mcp_server.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/pillar.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/practice.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/remediation.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/renderers.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/ruleset.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/sarif.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanner_status.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/__init__.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/bandit_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/base.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/builtin_rules.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/checkov_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/floor.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/gitleaks_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/gosec_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/hadolint_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/njsscan_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/npm_audit_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/pip_audit_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/rubocop_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/scorecard_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/semgrep_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/trivy_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/trufflehog_scanner.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scoring.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/standards.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/suppressions.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/triage.py +0 -0
- {secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/verify.py +0 -0
{secure_code_agent-0.12.4/src/secure_code_agent.egg-info → secure_code_agent-0.12.5}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: secure-code-agent
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.5
|
|
4
4
|
Summary: Deterministic security gate + bounded AI remediation prompt generator. NIST SSDF / OWASP ASVS / CWE Top 25 anchored.
|
|
5
5
|
Author: Marshall Guillory
|
|
6
6
|
License: MIT
|
|
@@ -513,7 +513,7 @@ For agents that support invokable skills, this repo ships a portable skill under
|
|
|
513
513
|
## GitHub Action
|
|
514
514
|
|
|
515
515
|
```yaml
|
|
516
|
-
- uses: marshallguillory86/secure-code-agent@v0.12.
|
|
516
|
+
- uses: marshallguillory86/secure-code-agent@v0.12.5
|
|
517
517
|
with:
|
|
518
518
|
config: secure-code-agent.json
|
|
519
519
|
fail-on-gate: true
|
|
@@ -465,7 +465,7 @@ For agents that support invokable skills, this repo ships a portable skill under
|
|
|
465
465
|
## GitHub Action
|
|
466
466
|
|
|
467
467
|
```yaml
|
|
468
|
-
- uses: marshallguillory86/secure-code-agent@v0.12.
|
|
468
|
+
- uses: marshallguillory86/secure-code-agent@v0.12.5
|
|
469
469
|
with:
|
|
470
470
|
config: secure-code-agent.json
|
|
471
471
|
fail-on-gate: true
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5/src/secure_code_agent.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: secure-code-agent
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.5
|
|
4
4
|
Summary: Deterministic security gate + bounded AI remediation prompt generator. NIST SSDF / OWASP ASVS / CWE Top 25 anchored.
|
|
5
5
|
Author: Marshall Guillory
|
|
6
6
|
License: MIT
|
|
@@ -513,7 +513,7 @@ For agents that support invokable skills, this repo ships a portable skill under
|
|
|
513
513
|
## GitHub Action
|
|
514
514
|
|
|
515
515
|
```yaml
|
|
516
|
-
- uses: marshallguillory86/secure-code-agent@v0.12.
|
|
516
|
+
- uses: marshallguillory86/secure-code-agent@v0.12.5
|
|
517
517
|
with:
|
|
518
518
|
config: secure-code-agent.json
|
|
519
519
|
fail-on-gate: true
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/osv_scanner.py
RENAMED
|
@@ -20,6 +20,13 @@ from secure_code_audit.findings import Category, Confidence, Finding, Severity
|
|
|
20
20
|
from secure_code_audit.scanner_status import ScanResult
|
|
21
21
|
from secure_code_audit.scanners.base import Scanner
|
|
22
22
|
|
|
23
|
+
#: osv-scanner's exit code for "No package sources found" — no lockfile,
|
|
24
|
+
#: manifest or SBOM anywhere under the target. Nothing to read is not a
|
|
25
|
+
#: failure to read, so it becomes NOT_APPLICABLE (D23). The tool's own
|
|
26
|
+
#: `--allow-no-lockfiles` would turn this into exit 0 instead, which would
|
|
27
|
+
#: report a completed run over nothing; an outcome that says so is better.
|
|
28
|
+
_NO_PACKAGE_SOURCES = 128
|
|
29
|
+
|
|
23
30
|
_OSV_SEVERITY: dict[str, Severity] = {
|
|
24
31
|
"CRITICAL": Severity.CRITICAL,
|
|
25
32
|
"HIGH": Severity.HIGH,
|
|
@@ -53,13 +60,18 @@ class OsvScanner(Scanner):
|
|
|
53
60
|
]
|
|
54
61
|
args.extend(sc_cfg.extra_args)
|
|
55
62
|
|
|
56
|
-
# osv-scanner exits
|
|
57
|
-
# 128
|
|
63
|
+
# osv-scanner exits 0 on clean, 1 on findings, 127 on general failure,
|
|
64
|
+
# and 128 when it found nothing to read. 128 was documented here as an
|
|
65
|
+
# internal error and mapped to FAILED — see D23.
|
|
58
66
|
r = self._exec(
|
|
59
67
|
args, cwd=target, timeout_seconds=sc_cfg.timeout_seconds, allowed_exits=(0, 1)
|
|
60
68
|
)
|
|
61
69
|
if r.returncode == 124:
|
|
62
70
|
return self.timed_out(target, f"osv-scanner timed out: {r.stderr[:200]}")
|
|
71
|
+
if r.returncode == _NO_PACKAGE_SOURCES:
|
|
72
|
+
return self.not_applicable(
|
|
73
|
+
target, "osv-scanner found no package sources (lockfile, manifest or SBOM) to scan"
|
|
74
|
+
)
|
|
63
75
|
if r.returncode not in (0, 1):
|
|
64
76
|
return self.failed(target, f"osv-scanner failed: {r.stderr[:300]}")
|
|
65
77
|
if not r.stdout.strip():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_agent.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_agent.egg-info/requires.txt
RENAMED
|
File without changes
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_agent.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanner_status.py
RENAMED
|
File without changes
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{secure_code_agent-0.12.4 → secure_code_agent-0.12.5}/src/secure_code_audit/scanners/floor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|