Conversation
Read project name, version, and license from pyproject.toml instead of using hardcoded defaults. Supports both PEP 621 ([project]) and Poetry ([tool.poetry]) formats with graceful fallback to existing defaults. - Add getRootComponentName/Version overrides in PythonPyprojectProvider - Add readLicenseFromManifest override for TOML license extraction - Cache parsed TOML to avoid redundant parsing - Add virtual methods in PythonProvider base class for subclass override Implements TC-3894 Assisted-by: Claude Code
ⓘ You are approaching your monthly quota for Qodo. Upgrade your plan Review Summary by QodoExtract pyproject.toml metadata for root SBOM component
WalkthroughsDescription• Extract project metadata from pyproject.toml for root SBOM component • Support both PEP 621 and Poetry configuration formats • Add virtual methods in base class for subclass override capability • Cache parsed TOML to avoid redundant parsing operations • Add comprehensive test coverage for metadata extraction scenarios Diagramflowchart LR
A["PythonProvider<br/>Base Class"] -->|"adds virtual methods"| B["getRootComponentName<br/>getRootComponentVersion"]
C["PythonPyprojectProvider<br/>Subclass"] -->|"overrides methods"| D["Extract from<br/>pyproject.toml"]
D -->|"PEP 621"| E["project.name<br/>project.version<br/>project.license"]
D -->|"Poetry"| F["tool.poetry.name<br/>tool.poetry.version<br/>tool.poetry.license"]
E -->|"fallback"| G["Default values"]
F -->|"fallback"| G
H["TOML Cache"] -->|"avoids re-parsing"| D
File Changes1. src/main/java/io/github/guacsec/trustifyda/providers/PythonProvider.java
|
Code Review by Qodo
1.
|
Test Results379 tests 379 ✅ 1m 45s ⏱️ Results for commit 2b0fde8. ♻️ This comment has been updated with latest results. |
src/main/java/io/github/guacsec/trustifyda/providers/PythonPyprojectProvider.java
Show resolved
Hide resolved
- Parse TOML into local variable before caching to avoid retaining errored parse results across subsequent calls - Add FINE-level debug logging when TOML parsing fails and metadata extraction falls back to defaults Implements TC-3894 Assisted-by: Claude Code
Verification Report for TC-3894
Overall: WARNNotes:
Acceptance Criteria Detail
This comment was AI-generated by sdlc-workflow/verify-pr v0.5.0. |
CI Feedback 🧐(Feedback updated until commit 2b0fde8)A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
Summary
pyproject.tomlmetadata (PEP 621 and Poetry formats) instead of using hardcoded defaults for the root SBOM componentgetRootComponentName()/getRootComponentVersion()virtual methods inPythonProviderbase class for subclass overridereadLicenseFromManifest()inPythonPyprojectProviderto extract license from TOML before falling back to LICENSE fileTest plan
[project]section[tool.poetry]sectionImplements TC-3894
🤖 Generated with Claude Code