aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/composer_repository.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-06 19:10:48 +0900
committernsfisis <nsfisis@gmail.com>2026-06-06 19:11:39 +0900
commit91509a729cb89275ef4e9a8e064f90cdee8a06c1 (patch)
tree1868c34e3667273041e86356dc7a428d62fe80c8 /crates/shirabe/src/repository/composer_repository.rs
parentc688de488d72e67ab1650b50adef4ad11f5de756 (diff)
downloadphp-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.rs3
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(