Skip to content

fix(security): repair OSV output contract and stale gate assertions - #1208

Closed
seonghobae wants to merge 5 commits into
mainfrom
fix/osv-output-file-20260822
Closed

fix(security): repair OSV output contract and stale gate assertions#1208
seonghobae wants to merge 5 commits into
mainfrom
fix/osv-output-file-20260822

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Scope

Repairs the central OSV output-file contract and the stale Strix quick-gate assertions that prevented exact-head policy from evaluating the current scheduler contract.

Changes

  • Replace deprecated OSV v2.3.8 --output arguments with supported --output-file arguments in .github/workflows/security-scan.yml.
  • Update the required workflow contract test.
  • Align scripts/ci/test_strix_quick_gate.sh with the current repository-scoped repository_dispatch concurrency contract and metadata-free workflow-run cancellation contract.

Evidence

  • Historical GRC exact-head Security Scan run 32506592698 / job 96848034820: OSV exited 0 but the deprecated flag left the required result files absent.
  • Official OSV usage documents --output-file: https://google.github.io/osv-scanner/usage/
  • Local targeted contract test: 52 passed.
  • bash -n scripts/ci/test_strix_quick_gate.sh passed.
  • git diff --check passed.
  • The long-form Strix fixture run was interrupted during timeout-cleanup and is not reported as passed.
  • This PR supersedes orphaned PR fix(security): use supported OSV output-file flag #1207, whose GitHub PR ref remains pinned to the predecessor head.

No checks are suppressed, no workflow is disabled, and no protected-branch bypass is requested.


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 181fd761-8f68-4baa-9ce5-aeb1198f9a97


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

Open in Devin Review

Comment thread .github/workflows/security-scan.yml Outdated
@seonghobae

Copy link
Copy Markdown
Contributor Author

Maintainer verification — exact head 518219fd9d6d81481b96b5ceaaff7ebbc7e69aed

  • Reproduced the predecessor fix(security): use supported OSV output-file flag #1207 failure: OSV Scanner exited successfully but the deprecated --output flag did not produce old-results.json/new-results.json; this is a real workflow contract failure, not a flaky source test.
  • fix(security): repair OSV output contract and stale gate assertions #1208 carries the supported --output-file repair and aligns the stale scheduler contract assertions with current repository-scoped dispatch and metadata-free workflow-run concurrency.
  • Added only the two missing 100% docstring-gate entries exposed by exact local verification (GitHubClient.__init__ and the deterministic FakeClient.__init__).
  • Exact base: 6a79f075d62b5f8dcfef6145960f1c42c147f273; no force push or protected-branch write.
  • Local exact-tree verification: 1293 passed, 16 subtests passed; statement/branch coverage 100%; interrogate 100%; targeted actionlint, shell syntax, compileall, CodeGraph sync/status, and git diff --check passed.

Hosted checks have restarted for this exact head and are queued. Independent approval is still absent; merge remains on the normal protected path.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review Please review exact head 518219fd9d6d81481b96b5ceaaff7ebbc7e69aed. Focus on the OSV v2.3.8 output-file contract, fail-closed artifact checks, and the scheduler quick-gate assertion alignment. Do not approve any superseded head.

@seonghobae
seonghobae enabled auto-merge (squash) August 21, 2026 18:02
@seonghobae

seonghobae commented Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Exact-head verification

  • PR: fix(security): repair OSV output contract and stale gate assertions #1208
  • Exact head: 9f0845517010f2c4695de83dd2bd50385c068a15
  • Exact base: fce028b4c3bf8e2e5e4819c1c5622e90cfa6ab39
  • Local merge-result tree: 11e0865d6aa0c24cfb6d30d84b46d44549bbd6ad
  • Scope: OSV scanner/reporter output-file contract, scheduler gate assertions, and exact main restack.
  • Local exact-head verification: 1308 passed, 16 subtests passed; statement/branch coverage 100% (8128/8128, 3144/3144); interrogate 100%; Security Scan actionlint, compileall, and git diff --check passed.
  • Current hosted Checks are still completing; no predecessor evidence is reused.
  • Review-only dispatch requested for this exact head. Do not merge, dismiss, bypass, update the branch, or reuse superseded approval.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent @cwl-noema-review Please review exact head de2ea4b9d7c8bcca81a69834d6d1859bfd9425ed. Scanner steps use the OSV v2 --output-file contract; the pinned v2.3.8 reporter uses its distinct official --output-files=sarif:results.sarif contract (google/osv-scanner v2.3.8 docs/osv-reporter.md). Fail-closed result-file assertions remain. Do not approve superseded heads.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head audit

  • Exact head: de2ea4b9d7c8bcca81a69834d6d1859bfd9425ed
  • Exact base: 6a79f075d62b5f8dcfef6145960f1c42c147f273
  • Diff is bounded to the OSV scanner/reporter output-file contract, its gate assertions, one fixture docstring, and traceability.
  • Review threads: 0 unresolved; no qualifying approval is currently recorded.
  • Local exact-head verification: 86 focused tests passed; security-scan actionlint, compileall, interrogate 100%, and diff check passed.
  • Hosted checks are queued; no current source failure is evidenced.
  • Decision: WAIT_AND_REMEDIATE; normal squash auto-merge remains enabled; no force merge.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head verification update

  • Exact head: 9f0845517010f2c4695de83dd2bd50385c068a15
  • Exact base: fce028b4c3bf8e2e5e4819c1c5622e90cfa6ab39
  • Normal restack onto current main is present; predecessor evidence is discarded.
  • Review threads: 0 unresolved; no qualifying approval is currently recorded.
  • Local exact-head verification: 86 focused tests passed; security-scan actionlint, compileall, interrogate 100%, and diff check passed.
  • Hosted required Checks are queued; no current source failure is evidenced.
  • Decision: WAIT_AND_REMEDIATE; normal squash auto-merge remains enabled; no force merge.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head verification update

  • Exact head: 9f0845517010f2c4695de83dd2bd50385c068a15
  • Exact base: fce028b4c3bf8e2e5e4819c1c5622e90cfa6ab39
  • Local merge-result tree: 9196a75fb362652e722fad3fc01e011c5b7c735c (base is an ancestor; tree equals current head)
  • Full local verification: 1308 passed, 16 subtests; statement/branch coverage 8128/3144, 100%; interrogate 100%; compileall, changed-workflow actionlint, shell syntax, and git diff --check passed.
  • Dependency audit: exact hash lock still contains pip==26.1.2; pip-audit reproduces PYSEC-2026-3721 with fix 26.2, so this is a real inherited dependency finding owned by root fix(security): repair pip audit and schedule orchestrator review #1198, not a force-merge deadlock.
  • Hosted exact-head observation: 16 success, 11 pending, 14 skipped, 1 neutral; no failure conclusion and no qualifying formal approval.

Decision: WAIT_AND_REMEDIATE. Keep normal auto-merge enabled; re-run after the root dependency repair is normally integrated and required Checks/approvals are available. No bypass, force push, direct protected-branch push, fake status, or self-approval.

@seonghobae seonghobae closed this Aug 21, 2026
auto-merge was automatically disabled August 21, 2026 18:34

Pull request was closed

@github-project-automation github-project-automation Bot moved this from In Progress to Done in naruon Platform Roadmap Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Closing this competing writer after absorbing each causal change into its existing canonical owner branch.

The docstring-only coordinator edits here are unrelated to either causal defect. No gate is weakened and no evidence from this PR is counted as passing.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head failure classification

Decision: WAIT_AND_REMEDIATE; no force merge, status fabrication, or failure suppression.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant