diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-06 19:10:48 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-06 19:11:39 +0900 |
| commit | 91509a729cb89275ef4e9a8e064f90cdee8a06c1 (patch) | |
| tree | 1868c34e3667273041e86356dc7a428d62fe80c8 /crates/shirabe/src/repository/composer_repository.rs | |
| parent | c688de488d72e67ab1650b50adef4ad11f5de756 (diff) | |
| download | php-shirabe-91509a729cb89275ef4e9a8e064f90cdee8a06c1.tar.gz php-shirabe-91509a729cb89275ef4e9a8e064f90cdee8a06c1.tar.zst php-shirabe-91509a729cb89275ef4e9a8e064f90cdee8a06c1.zip | |
feat(package-repository): filter advisories by affected version constraint
Implement the previously stubbed phase-b TODO so getSecurityAdvisories
skips advisories whose affected_versions do not match the requested
package constraint. Share the package VersionParser with
PartialSecurityAdvisory::create across both PackageRepository and
ComposerRepository instead of a separate semver parser instance.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/repository/composer_repository.rs')
| -rw-r--r-- | crates/shirabe/src/repository/composer_repository.rs | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/crates/shirabe/src/repository/composer_repository.rs b/crates/shirabe/src/repository/composer_repository.rs index 5ef156c..74f1426 100644 --- a/crates/shirabe/src/repository/composer_repository.rs +++ b/crates/shirabe/src/repository/composer_repository.rs @@ -915,13 +915,12 @@ impl ComposerRepository { } let parser = VersionParser::new(); - let semver_parser = shirabe_semver::version_parser::VersionParser; let repo_name = self.get_repo_name(); let create = |data: &IndexMap<String, PhpMixed>, name: &str, package_constraint_map: &IndexMap<String, AnyConstraint>| -> anyhow::Result<Option<PartialOrFullSecurityAdvisory>> { - let advisory = PartialSecurityAdvisory::create(name, data, &semver_parser)?; + let advisory = PartialSecurityAdvisory::create(name, data, &parser)?; let is_full = matches!(advisory, PartialOrFullSecurityAdvisory::Full(_)); if !allow_partial_advisories && !is_full { let data_mixed = PhpMixed::Array( |
