shieldci/laravel
ShieldCI for Laravel brings automated security and configuration checks to your CI pipeline, helping catch risky settings, exposed debug info, and common Laravel misconfigurations before they reach production.
High, Warning) that run in code. Each release like v1.20.0 is maintenance you don't pay for — and this one is almost entirely correctness work on checks you'd otherwise have to re-verify by hand.DetectsErrorTracking recognizes Flare, Inspector, and Nightwatch alongside the previously supported trackers, the choice of error-tracking vendor is no longer a hidden constraint on your readiness gate. v1.20.0 strengthens this specifically for Nightwatch: its flags are now read from the process environment, not only .env, so containerized, Kubernetes, and CI-injected configurations are evaluated the way production actually runs.xss-vulnerabilities previously passed when its CSP check couldn't reach the origin; it now warns. phpstan previously ran at level 5 even when you configured 'max'; it now passes 'max' through. A silently-weaker static analysis run is exactly the kind of green-but-wrong result that erodes trust in a gate.xss-vulnerabilities no longer grades the CSP of an off-host redirect (e.g. a Cloudflare Access login page), and OriginReachabilityChecker::probeFollowingSameHost() now follows same-host redirects and returns a RedirectChain. For teams fronted by SSO/Zero-Trust proxies, this is the difference between a check that's usable in your topology and one you'd have to mute.debug-mode no longer flags print_r() / var_export() unless output is actually printed, and never flags debug_backtrace(). Combined with the v1.19.0 asset-fetch downgrade, this confirms the maintainers are calibrating severity and precision, not just adding checks — grounds to treat the severity model as a real policy input.config-outside-config now counts an environment marker only in a subdomain (so dev.to is no longer a false positive) and correctly reports reserved .test, .localhost, and .local hosts. This matters for teams running multi-tenant, multi-region, or staging/locale-specific configurations through the same checklist.phpstan, xss-vulnerabilities, or missing-error-tracking in a blocking position, since those three are the ones whose results change.Adopt when:
.env.Look elsewhere when:
For executives: This is inexpensive insurance at the go-live boundary. Misconfiguration — debug mode left on, no cache headers on assets, production shipping with no error tracking, a static analysis baseline that isn't actually being enforced — is a recurring, expensive, and entirely avoidable class of incident. The package turns "did someone remember to check this?" into an automated, auditable gate. v1.20.0 is a quality release: it removes green-but-wrong results (the CSP check no longer passes when it can't reach your origin, and phpstan now honors your configured maximum level instead of quietly running weaker), it validates error tracking correctly when config comes from the process environment, and it eliminates a set of noisy false positives. No breaking changes, so adoption cost is a minor version bump; the payoff is a gate whose green actually means something.
For engineering: Composer-installable, config-driven, runs locally and in CI, emits severity-scored results you can wire into your pipeline. This release materially changes three checks: missing-error-tracking reads Nightwatch flags from the process environment (not just .env), xss-vulnerabilities ignores the CSP of off-host redirects and warns rather than passes when the origin is unreachable, and phpstan passes 'max' through instead of silently running at level 5 (it also explains unsupported levels before starting). debug-mode stops flagging print_r()/var_export() unless output is printed and never flags debug_backtrace(), and config-outside-config tightens TLD/subdomain detection. New API surface: OriginReachabilityChecker::probeFollowingSameHost() follows same-host redirects and returns a RedirectChain. Re-run your baseline before promoting any of these to blocking — expect previously green checks to flip. Caveat unchanged: severity thresholds are the maintainers' opinions; tune them against your own on-call tolerance.
How can I help you explore Laravel packages today?