Skip to content

Task #38: CI workflow 최소 권한 명시와 CodeQL alert 해소#42

Merged
postmelee merged 6 commits into
mainfrom
publish/task38
Jul 12, 2026
Merged

Task #38: CI workflow 최소 권한 명시와 CodeQL alert 해소#42
postmelee merged 6 commits into
mainfrom
publish/task38

Conversation

@postmelee

@postmelee postmelee commented Jul 12, 2026

Copy link
Copy Markdown
Owner

요약

  • 대상 타스크: CI workflow 최소 권한 명시와 CodeQL alert 해소 #38 CI workflow 최소 권한 명시와 CodeQL alert 해소
  • 왜: Repository 기본 token 설정과 관계없이 CI source에서 least-privilege 경계를 유지하고 CodeQL alert #1을 분석으로 해소해야 합니다.
  • 무엇: CI workflow-level permission에 contents: read만 추가하고 local CI/package 및 upstream diff를 검증했습니다.
  • 리뷰 포인트: 기존 trigger/action/step과 publish workflow는 그대로이며 Issue #38은 merge 후 main CodeQL에서 alert fixed를 확인한 뒤 수동 종료합니다.

변경 내역

  • Stage 1 (ee69914): CI에 workflow-level contents: read만 추가하고 기존 동작과 publish 경계를 검증했습니다.
  • Stage 2 (43c1246): Local test, package dry-run, CLI smoke와 dependency 0개를 확인했습니다.
  • Stage 3 (b2703ea): Upstream 동기화, alert/Dependabot 상태와 remote/post-merge gate를 확정했습니다.

영향 영역

영역 변경 리뷰 포인트
GitHub Actions CI GITHUB_TOKEN workflow-level contents: read Write, id-token 또는 추가 scope가 없는지 확인
Remote security gate PR CI와 merge 후 CodeQL alert fixed 확인 Automatic issue-closing keyword가 없고 alert dismiss 없이 수동 종료하는지 확인

작업 문서

핵심 리뷰 포인트

  • .github/workflows/ci.yml diff는 permissions: contents: read 3줄 추가뿐입니다.
  • Current CI에서 permission object를 제거하면 origin/main CI와 동일합니다.
  • .github/workflows/publish.yml의 trusted publishing permission은 변경하지 않았습니다.

검증

자동 검증

주제 검증 방법 결과 근거
Permission shape Ruby YAML.safe_load exact object 비교 OK Workflow-level contents: read 하나, job override 없음
CI behavior preservation Permission 제거 후 origin/main YAML 비교 OK Trigger, job, action version과 step 동일
Regression npm test OK 43/43 통과, fail/cancel/skip 0개
Package/CLI npm pack --dry-run --json, help/version smoke OK 17개 파일, 54,244 bytes, version 0.2.0
변경 경계 Publish/runtime/public 경로 diff OK CI permission 외 product change 없음
Diff hygiene git diff --check OK 경고 없음

수동/시나리오 검증

시나리오 확인 절차 결과 자료
Repository permission baseline Actions workflow permission API 조회 OK Default read, PR approval false, 외부 설정 비변경
Pre-merge alert integrity Alert #1 state/fixed/dismiss metadata 조회 OK open, fixed/dismiss metadata null, dismiss하지 않음
Concurrent Dependabot 확인 PR #40/#41 state와 files 조회 OK 둘 다 OPEN, task branch에 action version diff 없음

CI/원격 검증

항목 결과 근거
PR CI test OK CI run 29207178895, test pass
PR CodeQL Actions OK CodeQL run 29207178148, Analyze (actions) pass
PR CodeQL JavaScript/TypeScript OK CodeQL run 29207178148, Analyze (javascript-typescript) pass
PR CodeQL aggregate OK CodeQL check 86688534080, pass

검증 한계

관련 이슈

후속 이슈 제안

  • 없음

남은 리스크

  • PR checks가 실패하면 write permission을 임의 추가하지 않고 필요한 scope를 다시 분석합니다.
  • Issue #38은 PR merge로 자동 종료하지 않으며 main CI/CodeQL 성공과 alert fixed 확인 후 수동 종료합니다.

@postmelee
postmelee merged commit 126f241 into main Jul 12, 2026
4 checks passed
@postmelee
postmelee deleted the publish/task38 branch July 12, 2026 20:14
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.

1 participant