diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-03 22:47:33 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-03 22:47:33 +0900 |
| commit | 2b48ae7bcf857bc35de95968513750c2d6e6de7b (patch) | |
| tree | 3b76b3e3b673c5f4e8fbd20775e35d062e73b1f7 /crates/mozart-registry/src/composer_repo.rs | |
| parent | cccdce42f6eb5c21179bf7b2fbd482a7d29c3b9d (diff) | |
| download | php-mozart-2b48ae7bcf857bc35de95968513750c2d6e6de7b.tar.gz php-mozart-2b48ae7bcf857bc35de95968513750c2d6e6de7b.tar.zst php-mozart-2b48ae7bcf857bc35de95968513750c2d6e6de7b.zip | |
fix(resolver): honor config.audit.block-insecure security-advisory filter
Mozart silently ignored the `security-advisories` block on inline
`type: package` repositories and the `config.audit.block-insecure`
audit flag, so a `composer update` succeeded with packages a Composer
run would have refused to load. Mirror Composer's
`SecurityAdvisoryPoolFilter` for the slice that feeds the pool:
- Plumb a `security-advisories` field through `RawRepository` and a
`block_insecure` flag through `ResolveRequest`, lifted off
`composer.json`'s `config.audit.block-insecure`.
- Collect every advisory's `affectedVersions` constraint at resolve
time. When `block_insecure` is set and an inline package's
normalized version satisfies the constraint, drop it from the pool
before solving — root requires with no unaffected candidate then
fail with the standard "could not be resolved" error.
Diffstat (limited to 'crates/mozart-registry/src/composer_repo.rs')
| -rw-r--r-- | crates/mozart-registry/src/composer_repo.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/crates/mozart-registry/src/composer_repo.rs b/crates/mozart-registry/src/composer_repo.rs index 6594668..ef091ef 100644 --- a/crates/mozart-registry/src/composer_repo.rs +++ b/crates/mozart-registry/src/composer_repo.rs @@ -120,6 +120,7 @@ mod tests { only: None, exclude: None, canonical: None, + security_advisories: None, } } @@ -157,6 +158,7 @@ mod tests { only: None, exclude: None, canonical: None, + security_advisories: None, }]; assert!(collect_composer_packages(&repos).is_empty()); } |
