fix(acquisition): pin scheduled audit toolchain - #148
Conversation
📝 WalkthroughWalkthroughacquisition-readiness 워크플로가 외부 액션을 커밋에 고정하고 checkout 자격 증명을 비활성화한다. Node.js와 npm 버전을 정확히 검증한다. 증거 생성 전 소스 상태와 커밋을 확인한다. 관련 조건을 자동화 테스트로 검증한다. ChangesAcquisition readiness 무결성
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/acquisition-readiness-scan.yml (1)
64-68: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win아티팩트 누락을 오류로 처리하십시오.
if-no-files-found: warn은 증거 아티팩트가 없어도 워크플로 성공을 허용합니다. 이는test/acquisition-readiness-scan-toolchain-integrity.test.ts50-56행의 fail-closed 계약을 위반합니다.if-no-files-found: error로 변경하십시오.수정 제안
- if-no-files-found: warn + if-no-files-found: error🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/acquisition-readiness-scan.yml around lines 64 - 68, Update the if-no-files-found setting in the acquisition-readiness-audit upload-artifact step to error so missing evidence artifacts fail the workflow, preserving the existing artifact name and path.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In @.github/workflows/acquisition-readiness-scan.yml:
- Around line 64-68: Update the if-no-files-found setting in the
acquisition-readiness-audit upload-artifact step to error so missing evidence
artifacts fail the workflow, preserving the existing artifact name and path.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: ef723acb-7f3d-4ee5-879b-ad50b0e810b4
📒 Files selected for processing (2)
.github/workflows/acquisition-readiness-scan.ymltest/acquisition-readiness-scan-toolchain-integrity.test.ts
Purpose
Test-first hardening of the protected acquisition-readiness workflow. The workflow uses immutable Action revisions, non-persistent checkout credentials, the exact reviewed Node/npm runtime, executes no unnecessary dependency/lifecycle installation, revalidates tracked source before evidence generation, and now fails closed if the retained acquisition evidence artifact is absent.
Exact current lineage
c85d710804139c0697d7ef8fa47d02b1389e6d84fix/acquisition-scan-immutable-toolchain07a6514250c8100f0362c28391a855c6033a7809358eaa053ee7de7bcaa0a412ea858cb61cd376a99d0043a68467e3efb112988ca3e9e5be09152c24a9f22dab16e4c81456350e41d477fd623665919c.github/workflows/acquisition-readiness-scan.yml,test/acquisition-readiness-scan-toolchain-integrity.test.ts#69does not change.github/workflows/acquisition-readiness-scan.yml; this branch remains path-disjoint from its stale acquisition implementation surface.RCA -> remedies -> feasibility -> action -> proof
Dependency/lifecycle authority
The acquisition entrypoints are repository Node scripts composed from Node built-ins/local modules, so dependency installation added avoidable execution authority before buyer-evidence generation. Preserving frozen install, using
--ignore-scripts, and removing installation were considered. Eliminating install execution is the smallest authority-reducing remedy and preserves evidence semantics.Retained evidence fail-open
Fresh inspection found the final
actions/upload-artifactstep usedif-no-files-found: warn. A scheduled/report-only run could therefore complete without retaining the acquisition artifact that downstream diligence expects. Distinct remedies were warning-only telemetry, a separate pre-upload existence check, or using the upload action's native fail-closed contract.if-no-files-found: erroris the narrowest supported remedy and directly binds workflow success to evidence retention.The contract commit
9d0043a68467e3efb112988ca3e9e5be09152c24preceded the implementation, but its Actions runs were cancelled by branch concurrency after the GREEN follow-up and are not promoted as terminal RED evidence. CodeRabbit independently identified the same current defect on that predecessor. Exact current GREENa9f22dab16e4c81456350e41d477fd623665919cchanges the acquisition upload toif-no-files-found: errorwhile preserving artifact name/path.Exact current proof
For unchanged head
a9f22dab16e4c81456350e41d477fd623665919c:cirun31472336768: terminal success;reviewer-cirun31472336543: terminal success;Security Scanrun31472336532: terminal success;npm auditfound 0 vulnerabilities;COMMENTEDon predecessor9d0043a..., not qualifying independent approval;The ordinary CI KPI gate still reports
SKIPwhen real production KPI input is absent; that remains non-operational evidence. Missing production KPI, immutable release/deployment, customer/revenue, owner/legal rights and transfer evidence remain fail closed.Remaining integration
24.19.0/ npm11.17.0.Technical GREEN is not merge, release, deployment, production, legal or acquisition authority.
Related: #147, #5, #27, #68, #69, #155