C.W.K.
Stream
Lesson 04 of 04 · published

CODEOWNERS, CI, review evidence

~20 min · ci, review, codeowners

Level 0Untracked 새싹
0 XP0/47 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

CI, CODEOWNERS, review 증거

CI + CODEOWNERS + 필수 리뷰 룰 조합이 '코드 리뷰해야지' 를 시스템으로 바꿔. CI 가 모든 PR 에 자동 체크 (test, lint, type, security) 실행. CODEOWNERS 가 옳은 사람을 옳은 코드로 라우팅. 필수 리뷰 룰이 둘 다 sign-off 할 때까지 merge 차단. 단독으론 어느 것도 충분하지 않고, 함께가 main 을 건강하게 유지하는 gate.

CI 가 싸고 빠른 자동 절반. 모든 push 에 test 실행, lint 가 스타일 잡고, type-check 가 API 모양 에러 잡고, security 스캔이 알려진 안 좋은 dependency 와 명백한 leak 잡음. 협상 불가: CI 는 merge 필수, 예외 없음. 팀이 이걸 망치는 방법은 'skip CI' 태그 추가하거나 CI 가 '아마 괜찮을 거야' 일 때 merge — 규율은 실패한 체크 고치거나 PR revert, 절대 우회 안 함.

CODEOWNERS 가 인간 라우팅 처리. .github/CODEOWNERS 파일이 path 를 team / user 에 매핑. Branch 보호의 'Require review from Code Owners' 와 결합하면 path-인식 리뷰 요구 강제. Auth 코드는 auth 팀 필요. DB migration 은 platform 팀. 문서는 docs 팀만 필요. PR 리뷰 surface 가 자동 할당, reviewer 가 집중된 알림 받음, 옳은 사람이 승인할 때까지 merge 차단.

리뷰 증거가 저평가된 업그레이드. 필수 conversation 해결 이 모든 PR 코멘트가 resolved 표시될 때까지 merge 차단. Stale-approval dismissal 이 새 commit 들어오면 이전 승인 취소 — '일찍 승인 받고 의심스러운 commit 추가' 패턴 차단. Sign-off 된 commit (git commit -s) 이 프로젝트 contributor 약관 하의 저작권 증명 Signed-off-by trailer 추가. 작은 팀엔 아무것도 필수 아님, 팀이나 repo 의 risk profile 커지면 다 필수가 됨.

Code

최소 효과적 .github/CODEOWNERS·text
# .github/CODEOWNERS
# 마지막 매칭 패턴 승.

# 다른 데서 청구 안 된 모든 거의 default reviewer
*                          @core-maintainer @secondary

# 팀 요구 있는 민감 영역
/backend/auth/             @auth-team
/frontend/src/auth/        @auth-team
/migrations/               @platform-team
/infra/                    @platform-team
*.tf                       @platform-team

# CI / build pipeline 변경
/.github/                  @platform-team @core-maintainer

# 문서는 docs 팀만 있으면 더 빠르게 ship
/docs/                     @docs-team
README.md                  @docs-team
GitHub Actions PR gate·text
# .github/workflows/pr.yml
name: PR
on:
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20', cache: 'npm' }
      - run: npm ci
      - run: npm run lint
      - run: npm run typecheck
      - run: npm test -- --run

  commitlint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }
      - uses: wagoid/commitlint-github-action@v6

  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: github/codeql-action/init@v3
      - uses: github/codeql-action/analyze@v3

External links

Exercise

Admin 권한 있는 repo 에서 셋: (1) 최소 path-to-team 매핑 하나 있는 .github/CODEOWNERS 추가, (2) main 의 branch 보호에 Code Owner 리뷰 + 최소 한 status check 요구 설정, (3) PR 에 lint + test 돌리는 단순 GitHub Actions workflow 작성. CODEOWNERS-라우팅 path 건드리는 PR 열고 옳은 reviewer 자동 할당 확인. 규제된 codebase 에 추가할 룰 하나 적어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.