fix(security): keep every CodeQL Action phase on one revision - #780
fix(security): keep every CodeQL Action phase on one revision#780seonghobae wants to merge 9 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI 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 |
|
/oc Refetch the live pull request and abort without writing unless its exact head is |
Rebuild the PR from protected develop with only the atomic CodeQL lifecycle update, its test-first contract, doctoring record, and changelog entry. Remove unrelated PDF.js and npm lockfile drift from this branch.
8d932e5 to
efd875b
Compare
|
Exact-head triage at |
|
@opencode-agent Review the exact current head |
Update every CodeQL lifecycle phase and SARIF uploader to the verified upstream v4.37.7 commit, refresh the regression contract, changelog, and doctoring, and record the v2.26.3 bundle update. Preserve immutable SHA pinning and the existing atomic-version policy.
Problem
Dependabot opened separate updates for CodeQL
init,autobuild,analyze, andupload-sarif. Merging them independently would create an unreviewed mixed CodeQL lifecycle. Exact-current-code review also found that the permanent repository guard had a fail-open shape: its scanner matched only references that already looked like 40-character hexadecimal SHAs. A future mutablegithub/codeql-action/init@v4reference could therefore disappear from the evidence set instead of failing the exact-SHA invariant.Exact current scope
Current exact head:
738495ca9d425fb34a12e76c0614eda356e68f3a.Protected base:
develop@acdbea6344fe1231c39535b575f4de35e4c607c9.Exactly six files differ from protected
develop: the three CodeQL/SARIF workflow files,CHANGELOG.md, the CodeQL doctoring note, and the permanent Python contract test. There is no application dependency or root lockfile diff.The branch pins every checked-in
init,autobuild,analyze, andupload-sarifreference to CodeQL Action v4.37.7 target commitff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd, keeps the lifecycle atomic, corrects version annotations, adds a repository-wide revision contract, records the threat/update/rollback boundary in doctoring, and updates CHANGELOG under Unreleased. Workflow triggers, permissions, language selection, build behavior, SARIF paths, application dependencies, database, network authority, filesystem authority, model, and IPC surfaces are unchanged.Upstream authority verification
The GitHub upstream state was revalidated directly against
github/codeql-actionon August 16, 2026. Matchingv4.37.*refs end atv4.37.7; nov4.37.8ref existed at this inspection point.v4.37.7resolves through annotated tag objectfaaa5d804fc648d0fdb28822a8e36cf7d0a6132cto target commitff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd. The security claim is intentionally narrow: workflows execute the immutable target commit; no claim is made that the annotated tag object itself is signed.Test-first guard hardening
The original contract established that the currently matched CodeQL phases use one exact reviewed SHA, but the strict matcher itself could ignore a mutable/non-SHA reference.
0e57921de5e8f0ef8b66a739c3d4110709753a60addstest_reference_scanner_detects_non_sha_codeql_references, requiring a hypothetical@v4reference to be visible to the scanner. The predecessor matcher deterministically returns no match for that fixture. Its repository workflow was superseded, so it is not represented as executed RED gate evidence without a qualifying terminal result.30d92d54648976f3047b47ed86d8d43ee3407bcdbroadens only the scanner token grammar. The existing invariant still requires the resulting revision set to equal the exact reviewed 40-character SHA, so mutable tags/branches are captured and rejected rather than skipped.738495ca9d425fb34a12e76c0614eda356e68f3adocuments the fail-closed scanner behavior while retaining the existing APA 7 primary GitHub references.The production workflow references themselves remain byte-identical to the previously reviewed v4.37.7 pinned state in this follow-up; only the guard/test documentation changed after that state.
Exact-head verification state
On exact head
738495ca9d425fb34a12e76c0614eda356e68f3a, repositoryci,build-baseline,release,sbom,SAST Semgrep,bandit, andsecret-scan-gateare terminal-success.security-auditis terminal-failure. Exact job95076635068was inspected before classification: checkout/setup/install succeeded,Audit npm dependenciesfailed, and the subsequent Python/Rust audit steps were skipped. The annotation is only the generic exit-code-1 marker and the exact GitHub job-log endpoint returned an empty payload through the connector. This branch has no package/lockfile diff.Aggregate
Security Scanis terminal-failure. Exact run31911292551was inspected job-by-job: OSV base-vs-head comparison, Scorecard, and dependency-review are terminal-success;trivy-fsjob95076636392fails atPrint Trivy findings that failed the gateafter the filesystem scan and SARIF-output requirement pass. Its annotation is a generic exit-code-1 marker and its log endpoint likewise returned an empty payload through the connector. The changedupload-sarifstep runs after that finding gate and itself succeeds, so the failure is not introduced by this PR's CodeQL Action revision. Combined with the absence of dependency/lockfile changes and the successful PR-introduced OSV comparison, the whole-tree dependency failures are classified as inherited protected-base blockers owned by canonical #783, not suppressed or duplicated here.The repository quickcheck's Python command is statement-coverage-only under the current BandScope
coverage.pyconfiguration;branch = trueis not configured. Therefore a successfulciresult must not be represented as proof of the user-required 100% Python branch coverage. That remains an explicit merge blocker until exact-head branch measurement exists.No skipped audit stage, predecessor-head result, or inherited whole-tree failure is counted as success.
Review and dependency gates
There are currently no inline review threads and no qualifying independent non-author exact-current-head approval. Canonical #783 is repository-green on its exact head but has not reached protected
develop; it remains dependent on centralContextualWisdomLab/.github#1008plus qualifying independent approval. Central coverage/review therefore remains prerequisite-gated. Unchanged reviewer-agent work is not redispatched merely to reproduce that prerequisite failure.Supersession
After this coordinated PR is exact-head green against the then-current protected base and review-complete, it supersedes split Dependabot PRs #764, #766, #767, and #768. Their predecessor checks/reviews are not transferable, and they are not closed before supersession is proven by protected integration.
Merge gate
Keep Draft until #783 establishes the canonical protected dependency baseline, this branch is refreshed/revalidated against the then-current
develop, owned production statement and branch coverage is explicitly proven at 100%, every required repository and central check is terminal-success on the unchanged exact head, all actionable threads are resolved, a qualifying independent non-author last-push approval exists, and branch protection permits merge without bypass.Queued, in-progress, skipped-required, failed inherited-base, predecessor-head, protected-base, self/author, or administrative-bypass evidence is not success.