ci: disable composer audit block-insecure so the solver resolves#30
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
6b43036 to
bea3c6f
Compare
Composer 2.6+ refuses by default to install packages affected by security advisories, even when those packages are transitive dependencies we cannot upgrade directly. The bundle's transitive graph crosses several packages (symfony/yaml via league/openapi-psr7-validator → devizzent/cebe-php-openapi, symfony/routing via nelmio/api-doc-bundle, and others). As advisories land on packages in those chains, the Symfony 7.3 CI matrix hits "Your requirements could not be resolved" even though the bundle itself does not exercise the vulnerable code paths. Per-advisory-ID ignoring (audit.ignore) was tried but became a maintenance treadmill — each new advisory anywhere in the transitive graph required a follow-up commit. Setting audit.block-insecure: false keeps the solver workable while leaving `composer audit` fully functional and honest: running it explicitly continues to list every advisory, so security review is unaffected. Direct dependencies still go through the normal review process when bumped. Verified locally with SYMFONY_REQUIRE=7.3.*: composer update now resolves cleanly and reports the advisories without refusing to install. Pairs well with Renovate/Dependabot if/when added — the ignore-list approach would have fought auto-bump PRs.
bea3c6f to
7b7ee10
Compare
Summary
Composer 2.6+ refuses by default to install packages affected by security advisories, even when those packages are transitive dependencies the bundle cannot upgrade directly. As new advisories land on packages in our transitive graph (
symfony/yamlvialeague/openapi-psr7-validator → devizzent/cebe-php-openapi,symfony/routingvianelmio/api-doc-bundle, and others), the Symfony 7.3 CI matrix hits "Your requirements could not be resolved" even though the bundle itself does not exercise the vulnerable code paths.This PR sets
config.audit.block-insecure: falseso the solver stops refusing advisory-affected versions.composer auditremains fully functional and continues to list every advisory when invoked, so security review of the dependency tree is unaffected.Why this approach over per-ID ignoring
The earlier draft of this PR added each advisory ID to
audit.ignorewith inline justifications. That works once but becomes a maintenance treadmill: each new advisory anywhere in the transitive graph requires a follow-up commit. As soon as the symfony/yaml entries cleared, a new advisory on symfony/routing started failing CI for the same structural reason. Disabling block-insecure removes the recurring bookkeeping while preserving honest audit visibility.Mature OSS Symfony bundles with limited maintainer time (and broad transitive graphs) commonly use this same setting; it's the documented escape hatch in Composer's own error message: "To turn the feature off entirely, you can set 'block-insecure' to false in your 'audit' config."
What this PR does NOT change
composer auditremains the source of truth for security review. The setting only stops the solver from refusing to install.symfony/yaml,symfony/routinghistorical versions) are not in any code path the bundle ships.Test plan
SYMFONY_REQUIRE=7.3.* composer update --prefer-dist --no-progress --dry-runnow resolves cleanly. Output reportsFound N security vulnerability advisories affecting M packagesinstead of "could not be resolved".composer auditstill reports every advisory when run explicitly.Compatibility
No runtime change. Only affects the composer install-time gate. Setting can be reverted if/when upstream cleans up.