Skip to content

chore(security): unify OSV Action v2.5.1 - #1276

Closed
seonghobae wants to merge 15 commits into
mainfrom
codex/osv-scanner-action-v2.5.1-unified-20260824
Closed

chore(security): unify OSV Action v2.5.1#1276
seonghobae wants to merge 15 commits into
mainfrom
codex/osv-scanner-action-v2.5.1-unified-20260824

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Outcome

Pins all four central OSV-Scanner Action uses to the full commit referenced by the official current v2.5.1 tag. This clean current-main replacement supersedes stale Draft #921, whose v2.5.0 target is no longer current.

Supersedes #921.

Verification

  • TDD repository-wide pin/comment contract failed on v2.3.8 and passed after alignment
  • 1,394 passed, 1 skipped
  • 8,346 statements / 3,214 branches at 100% coverage
  • docstring coverage 100%
  • actionlint passed for the changed security workflow
  • workflow shell-syntax contracts passed in the full suite
  • git diff --check passed

Provenance

The official v2.5.1 tag resolves to 6e4298ebc4db23e847df9b2e2de2939d6f066c67. The doctoring record cites the official release and GitHub immutable-SHA guidance in APA 7th form.


Open in Devin Review

Summary by CodeRabbit

  • 버그 수정

    • OSV-Scanner 관련 스캔 및 취약점 보고 기능을 공식 v2.5.1 릴리스로 업데이트했습니다.
    • 최신 취약점 매칭, 네임스페이스, 로컬 캐시 및 오프라인 스캔 개선 사항을 적용했습니다.
  • 문서

    • OSV-Scanner 사용 기준과 버전 고정 정책을 문서화했습니다.
  • 테스트

    • 모든 OSV-Scanner 참조가 동일한 승인 릴리스와 커밋을 사용하는지 자동 검증합니다.

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 29 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 86a42eef-afe1-48a9-a63f-84c9a42611ed

📥 Commits

Reviewing files that changed from the base of the PR and between d935674 and 4cffcf6.

📒 Files selected for processing (4)
  • .github/workflows/osv-scanner-pr.yml
  • .github/workflows/security-scan.yml
  • CHANGELOG.md
  • tests/test_osv_scanner_action_pin_contract.py
📝 Walkthrough

Walkthrough

OSV-Scanner 관련 워크플로 참조를 v2.5.1 커밋으로 통일했습니다. 버전 고정 정책과 변경 기록을 문서화하고, 모든 참조의 SHA·태그·컴포넌트 개수를 검증하는 테스트를 추가했습니다.

Changes

OSV-Scanner 버전 고정

Layer / File(s) Summary
워크플로 참조 업데이트
.github/workflows/osv-scanner-pr.yml, .github/workflows/security-scan.yml
재사용 워크플로, Base/Head 스캔, 재시도 스캔, 리포터 액션을 v2.5.1 커밋으로 변경했습니다.
버전 고정 정책 문서화
docs/doctoring/osv-scanner-action-single-version.md, CHANGELOG.md
OSV-Scanner 사용처의 공식 v2.5.1 SHA 고정 정책과 기존 스캔 동작을 문서화했습니다.
참조 일관성 검증
tests/test_osv_scanner_action_pin_contract.py
워크플로 참조의 형식, 단일 릴리스 일치 여부, 컴포넌트별 기대 개수를 검증하는 테스트를 추가했습니다.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: 🔵 Low · up to d9356

The PR updates the OSV-Scanner Actions to v2.5.1, but nearby workflow notes remain inconsistent with that version and the provenance record uses a future-dated search date, which can mislead operators and weaken audit traceability. The change is mergeable with explicit owner follow-up on these bounded documentation issues.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 OSV Action을 v2.5.1로 통일하는 핵심 변경 사항을 간결하고 명확하게 요약합니다.
Docstring Coverage ✅ Passed Docstring check was indeterminate for this PR — some files could not be analyzed in time. Not blocking.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/osv-scanner-action-v2.5.1-unified-20260824

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[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 02:12
devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 02:20
@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 03:07
@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 03:14
@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 03:24
devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 03:32
@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 03:56
@seonghobae

Copy link
Copy Markdown
Contributor Author

Implemented on exact head . The OSV pin contract now scans both and workflow files and only treats lines containing as action references, avoiding comment false positives. Targeted contract test passed; passed.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Implemented on exact head 5b14089. The OSV pin contract now scans both yml and yaml workflow files and only treats lines containing uses as action references, avoiding comment false positives. Targeted contract test passed. git diff check passed.

@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 04:44
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head RCA for 5b14089: the source and action-contract checks passed, but Strix run 32689043516 failed closed after NVIDIA NIM provider infrastructure output and the protected-base openai-direct fallback alias was rejected by LiteLLM. No source vulnerability finding was produced. This dependency PR remains behind the provider-repair stack and cannot merge until a current-base exact-head Strix result and independent review are available.

@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 05:43
@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 09:18
@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 11:10

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 26187df510898277f8bf6f0e98b7d5e53c41abd1.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow (2 files)"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow (2 files)"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs: osv-scanner-action-single-version.md"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs: osv-scanner-action-single-version.md"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test: test_osv_scanner_action_pin_contract.py"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test: test_osv_scanner_action_pin_contract.py"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 17:51

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 26187df510898277f8bf6f0e98b7d5e53c41abd1.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow (2 files)"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow (2 files)"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs: osv-scanner-action-single-version.md"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs: osv-scanner-action-single-version.md"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test: test_osv_scanner_action_pin_contract.py"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test: test_osv_scanner_action_pin_contract.py"]
  R4 --> V4["targeted test run"]
Loading

@seonghobae

Copy link
Copy Markdown
Contributor Author

Refreshed on current main at exact head e5282ed. Upstream tag v2.5.1 resolves directly to verified commit 6e4298ebc4db23e847df9b2e2de2939d6f066c67; all scanner, reporter, and reusable workflow uses share that SHA. Verification: changed-workflow actionlint passed; 1,714 tests + 17 subtests passed; statement/branch and docstring coverage 100%.

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for e5282ed74341efe122eb512cfef243a7bd7270bc.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: osv-scanner-pr.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: osv-scanner-pr.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Workflow: security-scan.yml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: security-scan.yml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
  R3 --> V3["required checks"]
  Evidence --> S4["Docs: osv-scanner-action-single-version.md"]
  S4 --> I4["operator or user guidance"]
  I4 --> R4["Review risk: Docs: osv-scanner-action-single-version.md"]
  R4 --> V4["docs review"]
  Evidence --> S5["Test: test_osv_scanner_action_pin_contract.py"]
  S5 --> I5["regression suite"]
  I5 --> R5["Review risk: Test: test_osv_scanner_action_pin_contract.py"]
  R5 --> V5["targeted test run"]
Loading

…ion-v2.5.1-unified-20260824

# Conflicts:
#	CHANGELOG.md
seonghobae pushed a commit that referenced this pull request Aug 30, 2026
Document this hourly cycle's org-wide Strix root-cause finding (fixed by
this same branch), plus PR #1233/#1275/#1276 merge-conflict resolution,
#1274 closure as superseded by #1307, and the unrelated pre-existing
scripts/ci/pingora_edge_policy.py coverage-gap finding, per the dated
continuation-entry convention already used in this file.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 4cffcf669ce152ccd01b241cc1c8991efa619ceb.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: osv-scanner-pr.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: osv-scanner-pr.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Workflow: security-scan.yml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: security-scan.yml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
  R3 --> V3["required checks"]
  Evidence --> S4["Docs: osv-scanner-action-single-version.md"]
  S4 --> I4["operator or user guidance"]
  I4 --> R4["Review risk: Docs: osv-scanner-action-single-version.md"]
  R4 --> V4["docs review"]
  Evidence --> S5["Test: test_osv_scanner_action_pin_contract.py"]
  S5 --> I5["regression suite"]
  I5 --> R5["Review risk: Test: test_osv_scanner_action_pin_contract.py"]
  R5 --> V5["targeted test run"]
Loading

Copy link
Copy Markdown
Contributor Author

Superseded by newer upstream evidence and current-main ownership. This branch correctly discovered that scanner/reporter/reusable OSV uses must be version-locked together, but it pins them to official v2.5.1 commit 6e4298e.... Current Dependabot #1520/#1521 now target later 8e5cf47..., which includes the v2.5.1 line plus JSON-export and fail-closed incomplete-scan fixes. Merging this stale branch after those updates could downgrade scanner/reporter identity, while leaving the reusable-workflow problem entangled with an old 15-commit branch. I preserved the unique whole-system contract and reusable-workflow/output-limit acceptance in current issue #1543, explicitly requiring a current-main successor on the then-current upstream immutable SHA. Closing #1276 unmerged reduces required-workflow fan-out; no predecessor checks/reviews transfer to #1520/#1521 or the successor.

@seonghobae seonghobae closed this Sep 1, 2026
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.

2 participants