Skip to content

ci: ratchet CodeQL findings via pawl - #52

Merged
lbb00 merged 5 commits into
mainfrom
feat/codeql-pawl-ratchet
Sep 2, 2026
Merged

lbb00 merged 5 commits into
mainfrom
feat/codeql-pawl-ratchet

Conversation

@lbb00

@lbb00 lbb00 commented Sep 1, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Adds pawl.codeql.yaml: a standalone pawl config with one sarif-builtin dimension per CodeQL matrix language (codeql-go, codeql-javascript-typescript), kept separate from pawl.yaml/ci.yml so it can't affect the existing self-gate.
  • codeql.yml's analyze step now writes SARIF to a fixed sarif-results/ path; each matrix leg runs pawl check -c pawl.codeql.yaml --only codeql-${{ matrix.language }} afterward.
  • Baseline (pawl.codeql.snapshot.json) seeded at 0 findings for both languages, confirmed via the real Code Scanning API results on this PR's own CodeQL run (results_count: 0 for both) rather than assumed.
  • Fixed one bug found only by running it for real: codeql-action writes the SARIF file named after the CodeQL language id (javascript), not the matrix value (javascript-typescript); go's leg happened to match by coincidence.

Test plan

  • Local fixture test: pawl record → clean check (exit 0) → injected regression → check correctly fails (exit 1).
  • Real codeql.yml run on this PR: both Analyze (go) and Analyze (javascript-typescript) jobs pass end to end with the recorded baseline.
  • Baseline recorded from real CodeQL findings (0/0) and committed.

Separate pawl.codeql.yaml config, kept apart from pawl.yaml/ci.yml so a
missing SARIF file here never affects the unrelated self-gate. Each
codeql.yml matrix leg runs pawl check --only against its own language's
SARIF output.

No baseline yet — pawl.codeql.snapshot.json still needs to be recorded
from a real CodeQL run before check will pass.
@github-actions

github-actions Bot commented Sep 1, 2026 •

Copy link
Copy Markdown

pawl CI · c88ebc0

Quality gate (pawl on pawl)

metric               baseline    current       Δ  status
------------------------------------------------------
file-length                 0          0      ±0  ✅ same
file-length-growth          0          0      ±0  ✅ same
file-bytes                  0          0      ±0  ✅ same
panics                      1          1      ±0  ✅ same
todo-markers                0          0      ±0  ✅ same
stray-prints                0          0      ±0  ✅ same
passing-tests             689        701     +12  🎉 better
test-failures               0          0      ±0  ✅ same

🎉 improved: passing-tests
   run `pawl record --only passing-tests` to lock in the gains.
::notice::pawl improved: passing-tests — run `pawl record --only passing-tests` to lock in the gains.

✅ npm release packages validated (build + dry-run pack)

Confirmed via the Code Scanning API (results_count: 0 for both go and
javascript-typescript, on this PR's merge ref and on main's latest
analyzed commit) rather than assumed.
codeql-action writes the file named after the CodeQL language id
("javascript"), not the matrix value ("javascript-typescript") — the
first real run's Analyze step log confirmed this
(sarif-results/javascript.sarif). The go leg happened to match by
coincidence since "go" is both the matrix value and the language id.
@lbb00
lbb00 marked this pull request as ready for review September 1, 2026 12:41
@lbb00
lbb00 merged commit 9f55ab4 into main Sep 2, 2026
6 checks passed
@lbb00
lbb00 deleted the feat/codeql-pawl-ratchet branch September 2, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant