Finish ShiftPrint finding-only scanner gates - #4
Conversation
Copy the four-state scanner runner, Snyk and Sonar wrappers, and their tests from Relay. They import Node stdlib only, so ShiftPrint gains no package.json, npm, or node_modules; they run as plain `node scripts/*.mjs`. Relay's reviewed-issue manifest is deliberately NOT inherited. Its 49 exceptions are bound to issue keys, rules, and components that do not exist here, so importing them would suppress real ShiftPrint findings. The manifest starts empty and the exact-count guards are repointed to zero, so it still cannot change without a deliberate edit. Work in progress: 60 of 80 ported tests pass. The remainder encode Relay's manifest contents and workflow shape and are adapted next. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
sonar-project.properties targets the Python sources with the ShiftPrint project key and reads coverage from coverage.lcov, which pytest-cov emits directly. Entry points and the icon generator are excluded from coverage: they are verified by running the app and asserting the built assets. .coderabbit.yaml matches the agreed policy: request-changes workflow on, drafts skipped, incremental review paused after two reviewed commits, and base branch test. No paid, usage, credit, or overage keys. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Relay's wrapper shelled out to npm scripts, which would have dragged package.json, a lockfile, and node_modules into a Python repository for no benefit. Replace that single command builder with a direct snyk invocation and phase table: Open Source scans requirements-dev.txt through the pip package manager, Code scanning stays language-agnostic, and monitor reuses the same manifest and repository arguments. requirements-dev.txt is the target because it pulls in the runtime requirements and the build tooling PyInstaller packages, which is what the spec means by development dependencies that participate in packaging. Threshold stays high, matching Relay. All eight run-snyk-ci tests pass against the new command shape. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
|



What changed
Security and Code Qualityworkflow for internal PRs andtestpushesBuild quality gatename and runs all scanner regressions therepywin32dependency is resolved and scannedcmd.exewithout enabling shell mode in the process runnerWhy
Relay’s policy and gate semantics belong here, but its Electron/npm assumptions and 49-entry Sonar exception inventory do not. ShiftPrint now applies the same finding-only policy to its real Python and Windows dependency graph without inheriting unrelated exceptions.
Validation
git diff --checkis cleanRepository setup
SONAR_ORGANIZATION=crimsonsoulSNYK_ORG=crimsonsoulSONAR_TOKENandSNYK_TOKENare configured as repository secretstestrequires Build quality, SonarQube, and Snyk with strict up-to-date checksNo Relay finding exceptions were inherited.