Skip to content

Results & Fixables

Choose a tag to compare

@ChristopheFerreboeuf ChristopheFerreboeuf released this 16 Apr 13:02
· 9 commits to main since this release
ff2a67c

Fixed

  • Fix-apply: proxy patches not generated: Rule ID mapping mismatch between Scanner and FixApply prevented proxy findings (noProxyUsedInCommands, noProxyUsedForHeavyClasses) from reaching the fixer. Scanner checked fixable types using the processor's ruleId (e.g., noProxyUsedInCommands) while the API returns the mapped name (proxyConfiguration). Both Scanner and FixApply now resolve mapped rule names via PreparerInterface::MAPPED_RULES before checking fixable types — consistent with what AbstractPreparer::isRuleFixable() already does
  • ProxyForHeavyClasses no longer recommends Proxy for Collections: Collections are stateful and need a fresh instance per use — the correct pattern is CollectionFactory, not \Proxy. SpecificClassInjection already flags this correctly with collectionMustUseFactory. Removed 'Collection' from heavy class patterns and added an explicit Types::isCollectionType() guard in isHeavyClass()

Added

  • Result consolidation: All processors now merge consecutive-line findings for the same file into a single entry (e.g., two proxy issues on lines 15-16 become one entry with startLine: 15, endLine: 16). Non-consecutive findings remain separate. Messages are joined with line breaks, metadata entries are collected into arrays, and severity takes the highest value. Consolidation logic lives in AbstractProcessor::consolidateResults() and is applied in all 13 processors that can produce per-file duplicates
  • SARIF endLine support: Region objects now include endLine when it differs from startLine, per the SARIF 2.1.0 spec
  • HTML line ranges: The Line column now displays ranges (e.g., 15-16) for consolidated findings, and messages render with <br> separators

Changed

  • DiPreparer: processFiles() now handles both consolidated metadata (array of entries) and single-entry metadata, ensuring fix-apply works correctly with consolidated reports
  • FixApply selectRules(): Interactive rule selection and credit cost lookup now use mapped rule names, fixing proxy rules not appearing in the --fix-by-rule menu

What's Changed

  • Bump actions/upload-pages-artifact from 4 to 5 by @dependabot[bot] in #9
  • Bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #8

Full Changelog: v1.0.8...v1.0.9