Branch: refs/heads/ci-check-flicker-stabilisation Home: https://github.com/xwiki/xwiki-dev-llm Commit: cee31afb48c8fdf9e18f9985a3b68290460120dc https://github.com/xwiki/xwiki-dev-llm/commit/cee31afb48c8fdf9e18f9985a3b682... Author: Vincent Massol <[email protected]> Date: 2026-09-19 (Sat, 19 Sep 2026) Changed paths: M README.md M xwiki/skills/xwiki-ci-check/SKILL.md M xwiki/skills/xwiki-ci-check/tools/ci-check.mjs A xwiki/skills/xwiki-ci-check/tools/sonar-gate.mjs Log Message: ----------- [Misc] Find who caused a quality gate failure, and say so in the report * tools/sonar-gate.mjs reads the failing conditions of a branch's gate and the new-code issues under each — file, line, rule, severity, the day it was raised and the SCM author of the line — from SonarCloud, which is the only system that holds them: the Jenkins log says `QUALITY GATE STATUS: FAILED` and stops. * ci-check.mjs asks GitHub which commit last touched each of those files by the day the issue appeared, and puts conditions, issues and `culprits` in `sonar`. The rendered paste prints them under the incident. * Whose code, not who broke the build: a line's author is not a culprit, so this lands in `sonar.culprits`, never in `blame`, and no commit comment follows. Each name carries its provenance — Sonar's line author, or the commit's author only where Sonar had none. * Fails soft like the Develocity pass: no `SONARQUBE_TOKEN`, no gate facts, and `summary.sonar.unavailable` says so while the sweep is otherwise unchanged. * Measured on master: reliability of new code is C against a wanted A, on three issues — one BLOCKER NPE and two of one two-line change. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-dev-llm/settings/notifications