Repository navigation
Analyze merge-queue commits with trusted Sonar controls - #788
Conversation
|
Security review of exact head CodeQL alert 140 and Sonar
GitHub documents that The residual trust is the pinned scanner/analyzers parsing hostile source, not candidate command execution. That is the bounded input risk inherent in this static-analysis job. The two Sonar This classification does not override required CI. The current head still fails the central policy preflight because its deliberate |
|
Security recheck of exact head 1a3c2fd, tree ebef456ae2f0fcc125a6384b0dbed5be366cb0ea: the four-line delta is semantically equivalent ASCII-digit matching plus absolute /usr/bin/git for the fixed ubuntu-latest runner. It removes the reviewed S6353/S4036 noise without changing trigger, permissions, candidate isolation, scanner configuration, action pins, token placement, or the prior CodeQL/Sonar classification. No Security objection and no further Security wait; normal CI remains authoritative. |
|
The first protected merge group for this PR was
After this CI failure clears, this PR still needs a successful protected merge. The next real merge group will then verify the default-branch |
|
|
Exact head The failure is the published PHP2.11.1 The bounded PHP log retained a tail after the failing request, so it does not preserve the originating exception. I am not claiming a particular lock error from that evidence. Published update-validation contention defects remain tracked in #726/#754. After the complete workflow ended, I requested one rerun of this failed job only, with runner debug logging enabled. It must pass the original assertion; no generic500 retry or fixture relaxation was added. All other matrix cells retain their completed qualification. The diagnostic gap and duplicate full PR/merge-group cycles are CI follow-ups. Full qualification of the protected merge group remains required. The already qualified native #773 may advance in parallel with a genuine Sonar bootstrap, while this PHP-reference failure is handled by General. |
|
Automatic merge-queue analysis is verified on the real #790 group
This completes automatic-scanner acceptance after #788's protected merge at20:44:29UTC. The full Shared Server fixture matrix remains mandatory for each protected group; #790 subsequently merged through the protected queue at21:33:05UTC as the exact qualified commit The active main queue retains Protected merges #785, #773, #788 and #790 have passed the queue. Two-build concurrency started #788's full group15m10s before #773 merged, preserving all qualification. Bootstrap-only clone/cache, the unused custom policy-tools image/build context and both completed clean worktrees were removed after checking for active mounts and unrelated work. Ordinary product delivery continues; General's PHP handoffs are in #791. |



Queued commits need a genuine Sonar App result on their synthetic SHA. The first protected queue merge proves that reporting path works; this PR makes scanning automatic and repairs the reference-heartbeat retry gap exposed by its own queue qualification.
A dedicated
queue-sonar.ymlruns from the default branch after a successful merge-group PHPUnit workflow. It validates repository, workflow, queue branch and exact synthetic SHA, checks out trusted controls separately from analysis data, rejects linked files/submodules, and applies trusted scanner configuration. Only the pinned static scanner receivesSONAR_TOKEN; automatic Clippy execution is explicitly disabled. Existing PR/main analysis stays unchanged.Upload with
sonar.qualitygate.wait=false: GitHub still requiresSonarCloud Code Analysisfrom genuine Sonar App 12526 on the queued SHA. The account permits App decoration but rejects branch-status polling. Required PHPUnit and Shared Server fixtures also remain intact. Shared policy prerequisites durable-workflow/.github#266 and #267 are merged. CodeQL140 and the candidate-data checkout findings have their independent false-positive dispositions recorded.The first group correctly failed closed on a real corpus failure: published PHP returned an explicit, retryable SQLite heartbeat deferral in HTTP200, which the probe recorded as a final answer. The probe now retries only documented activity/task/worker heartbeat deferrals with the exact negative acknowledgement,
backend_lock_pressureandretryable=true. Existing 15-retry/30-second bounds, request timeout, replayable-body check and stderr retry evidence remain; frozen fixture expectations are unchanged. Original group evidence.Validation: 336 focused Node scanner, merge-group, aggregate and parity-runner contracts pass. Six PHP retry tests/70 assertions cover accepted and rejected deferred-heartbeat shapes, unchanged budgets and a real Guzzle middleware replay whose recorder sees the terminal result only. All 21 shared-policy tests and 23 hostile workflow mutations passed for the unchanged scanner profile. A genuine Sonar App check succeeded on the first synthetic group with zero new issues. The failed-job retry was superseded and cancelled when this forward CI repair was pushed; it is not a passing qualification receipt.
Final-head hosted qualification and a protected merge remain. After landing, the next real merge group must exercise the trusted default-branch scanner automatically. Follow-up to #742; existing CI and credential trust are in scope for source review.