Skip to content

fix(ci): 리뷰 순서 위반 승인을 보존한다 - #1222

Merged
1hyok merged 1 commit into
developfrom
ci/review-order-status
Aug 26, 2026
Merged

1hyok merged 1 commit into
developfrom
ci/review-order-status

Conversation

@1hyok

@1hyok 1hyok commented Aug 26, 2026 •

Copy link
Copy Markdown
Collaborator

변경 사항

  • 순서 위반 리뷰를 dismiss하지 않고 PR head의 oldest-review-order commit status를 실패로 유지합니다.
  • 더 오래된 리뷰 빚이 해소되면 영향을 받는 PR을 다시 계산해 기존 승인을 그대로 유효하게 만듭니다.
  • 공개 저장소의 fork/Dependabot PR도 처리할 수 있도록 무권한 이벤트 감지 workflow와 trusted workflow_run 재계산 workflow를 분리합니다.
  • 과거 정책이 자동 취소한 #821의 승인 리뷰는 검증된 review/timeline allowlist로 한 번만 이관할 수 있게 합니다.

안전성

  • PR 코드는 권한 있는 workflow에서 실행하지 않고 default branch의 스크립트만 checkout합니다.
  • 모든 대상에 pending을 먼저 기록하고, 조회·HEAD 검증이 모두 끝난 뒤에만 success/failure를 기록합니다.
  • reviewer별 최신 결정을 모두 검사해 뒤의 정상 리뷰가 앞선 순서 위반을 덮지 못하게 합니다.
  • historical replay는 PR·review·dismissal event·원 작성자·선행 PR provenance를 모두 검증하고 allowlist 밖 요청은 거부합니다.

검증

  • node --test .github/scripts/*.test.mjs — 181/181 통과
  • actionlint .github/workflows/oldest-review-order.yml .github/workflows/oldest-review-order-event.yml — 통과
  • scripts/repository-quality.sh — 통과
  • git diff --check — 통과

적용 순서

  1. 이 PR을 병합하고 새 workflow를 활성화합니다.
  2. 전체 열린 PR을 backfill한 뒤 oldest-review-order를 required status에 추가합니다.
  3. #821의 자동 취소 승인(review 5032388275)을 1회 이관하고 즉시 전체 권한 설정을 원복합니다.

Related: #1205, #1136, #1148

연결 이슈

Closes #1236

@1hyok 1hyok closed this Aug 26, 2026
@1hyok 1hyok reopened this Aug 26, 2026
@1hyok
1hyok force-pushed the ci/review-order-status branch from 6217431 to 855936d Compare August 26, 2026 17:21
@1hyok
1hyok merged commit a170531 into develop Aug 26, 2026
4 of 8 checks passed
@1hyok
1hyok deleted the ci/review-order-status branch August 26, 2026 17:23
@github-actions

Copy link
Copy Markdown
Contributor

❌ Screenshot test fail — baseline 과 CI rendered PNG 차이.

📦 Artifact: https://github.com/Afternote/Afternote-FE/actions/runs/32993829879 (페이지 하단 Artifacts → screenshot-test-results)

🔍 확인 위치 (artifact zip 내부):

  • diff PNG: preview/debug/diffs/...
  • rendered PNG: preview/debug/rendered/... (CI 환경에서 새로 그린 결과)
  • baseline PNG: repo <module>/src/screenshotTestDebug/reference/... (:core:ui · :feature:home:presentation · :feature:receiver:presentation · :feature:onboarding:presentation · :feature:afternote:presentation · :feature:mindrecord:presentation)

📝 조치 가이드:

  • 의도된 시각 변경 → docker build -t afternote-screenshot:latest -f Dockerfile.screenshot . 후 docker run --rm -v "$PWD":/workspace -w /workspace afternote-screenshot:latest ./gradlew :<module>:updateScreenshotTest 로 baseline 갱신 + commit/push
  • diff 가 anti-aliasing/font 차이로 보이면 docker 환경 변경 여부 (Dockerfile.screenshot) 점검

CI ↔ 로컬 환경 차이는 본 워크플로의 container 단계가 root fix 한다 (README 의 "Compose Preview Screenshot Testing (docker baseline)" 섹션 참조).

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.

[추적] PR #1222 fix(ci): 리뷰 순서 위반 승인을 보존한다

1 participant