ci(quality): enable the Code Quality gates this repo was silently skipping - #2337
Conversation
…pping A skipped job and a passing job are indistinguishable in the Quality Report. Every gate turned on here reported 'skipped' in every run. Each newly-enabled leg was measured against this tree BEFORE being enabled; the results are in the PR description. Legs that were measured failing are enabled anyway - the defects are pre-existing, and the only thing that changed is that CI can now see them. Journeydoc Capture and enable-axe are deliberately NOT enabled.
Quality Report — ConductionNL/openregister @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-specs | ✅ | ||||
| test-l10n | ❌ | ||||
| composer | ✅ | ✅ 173/173 | |||
| npm | ✅ | ✅ 713/713 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ✅ |
Quality workflow — 2026-08-04 15:12 UTC
Download the full PDF report from the workflow artifacts.
What the run actually producedRun 30921030568 — the measurement that matters, since it is the one that decides the verdict. Jobs: 27 → 28 (skipped: 6 → 4). Counted from the jobs API, not from the AttributionCaused by this change: Failing jobs
|
What
Enables the Code Quality gates this repo was silently skipping.
frontend-checks: []-> job not emitted)["check:specs", "test:l10n"]Why
A skipped job and a passing job are indistinguishable in the Quality Report.
Every gate listed above reported
skippedin this repository's runs, which readsas "fine". This turns them on.
Two prerequisites landed on
ConductionNL/.github@mainfirst and are what makethis viable:
no-admin-idor) now follows delegation, andgates 6/7 no longer pass on an empty scope. Before that, gate-7 flagged
correctly-guarded methods whose guard is reached through a helper, which is
why 19 of 20 repos kept the whole tier switched off.
frontend-checkslist deleted the Frontend Check jobfrom the run rather than skipping it, because
inputs.frontend-checks != '[]'was a literal string comparison.
Not enabled, on purpose
enable-axe— it produces the report hydra-gates gate-33 consumes, but avanilla Nextcloud 34 with no app installed already returns three
serious/critical violations from core's own UI. Turning it on in the same
change as the gates would confuse "this app has an accessibility defect" with
"Nextcloud core does". Separate change.
On red
Some legs below were measured failing before this PR was opened, and are
enabled anyway. The defects are pre-existing; the only thing that changed is
that CI can now see them. Per the brief, a gate is not switched back off because
it failed on arrival — the failure is the result.
Measured before flipping, not after
Every leg below was run against this branch's tree before it was enabled:
check:specsPASSES (with warnings fromvalidate-registerabouttypeon two register fragments).test:l10nFAILS — source strings missing froml10n/en.json, e.g. "Write an audit-trail entry for every step" (src/views/settings/sections/FlowConfiguration.vue:29).Left off, with reasons
frontend-checkslist does not skip the job, it removes it from the run entirely.test— already run by the shared Frontend Tests (unit) job.