fix(security): restack maintainer token capability ingress on current main - #343
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
📝 WalkthroughWalkthroughGitHub 토큰 전달을 환경 변수에서 제한된 임시 파일 기반 방식으로 변경했습니다. 토큰 로더는 입력과 내용을 검증합니다. 감사 및 readiness 스크립트는 명시적 토큰을 GitHub CLI에 전달합니다. 워크플로와 테스트가 이 경로를 검증합니다. Changes위임 토큰 유입
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to The PR narrows delegated Maintainer App token exposure by using a temporary capability file and fail-closed handling. No actionable merge-blocking risk remains beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant GitHubActions
participant TokenFile
participant ReadinessScript
participant GitHubCLI
GitHubActions->>TokenFile: 제한된 권한으로 Maintainer App 토큰 저장
GitHubActions->>GitHubActions: 토큰 환경 변수 제거
GitHubActions->>ReadinessScript: NOEMA_MAINTAINER_TOKEN_PATH 전달
ReadinessScript->>TokenFile: 위임 토큰 읽기
ReadinessScript->>GitHubCLI: 읽은 토큰으로 GitHub API 명령 실행
GitHubActions->>TokenFile: 종료 시 파일 삭제
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 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 |
Purpose
Restack the bounded Maintainer App credential-ingress hardening from #311 onto the current protected
mainwithout carrying stale ancestry or predecessor validation evidence.Exact construction
mainimmediately before construction:f1846b322290a7ddefe20a6f835884e7c9a0f6a2;cd4288300e3753b9ae635d8d3b67b0f663c0544d;b08b48fc545a7d9f5c2c30fed7d9610fa93f8f64;Changed paths are limited to:
.github/workflows/hourly-commercial-readiness.yml.github/workflows/maintainer-app-readiness.ymlscripts/hourly-commercial-readiness.mjsscripts/lib/delegated-github-token.mjsscripts/main-governance-audit.mjstest/github-credential-capability-ingress.test.tstest/hourly-commercial-readiness-toolchain-integrity.test.tstest/main-governance-audit-script.test.tstest/workflow-readiness.test.tsSecurity change
The two Noema automation scripts no longer source the delegated Maintainer App bearer token directly from their ambient Node process environment. Trusted workflow bootstrap shell writes the short-lived token to a restrictive runner-temp capability file (
umask 077), unsets the bootstrap environment value, registers cleanup, and passes only the capability-file path into the Node process. The helper fails closed for missing, unreadable, empty, or control-bearing capability contents; only the boundedghsubprocess environment receivesGH_TOKEN.This does not claim organization-wide secret storage, live Maintainer App provisioning, production deployment, or broader issue #111 completion. It modifies only Noema and does not modify central
.github, naruon, contextual-orchestrator, branch policy, reviewer authority, releases, deployments, or outbound licensing.Evidence boundary
No CI, scanner, review, coverage, model, or production evidence from #311 transfers to this successor. Keep this PR Draft until this unchanged exact head has fresh terminal-success application
ci,reviewer-ci, protected-base-eligible centralSecurity Scan, exact 100% owned-production statement/branch/function/line coverage with realistic tests, and zero valid unresolved findings. Pending/queued/skipped/absent/neutral/failed/cancelled/stale/predecessor/status-only/model-only/rate-limited evidence is non-passing.The current live Noema ruleset requires the central Security Scan workflow and does not add an independent formal-approval requirement. #311 should be closed as superseded only after this successor reaches protected-main truth.
Summary by CodeRabbit
보안 강화
테스트