피드로 돌아가기
Dev.toDevOps
원문 읽기
개발자가 GitHub Action 기반 PR-Sentry를 구축해 AI 생성 PR과 불필요한 리뷰 코멘트를 사전 필터링으로 차단
I Built a GitHub Action to Stop AI-Generated PRs Before They Reach My Queue
AI 요약
Context
Daniel Stenberg의 curl 프로젝트에서 버그 바운티 리포트의 20%가 AI 생성 쓰레기였으며, 팀은 실제 버그 수정보다 트리아지에 더 많은 시간을 소비했다. CodeRabbit, Copilot 같은 AI 코드 리뷰 봇이 변수명, 공백, docstring 누락 등 스타일 문제를 과다 지적하면서 '이중 리뷰 피로'가 발생했다.
Technical Solution
- 통계적 슬롭 감지: PR 설명과 diff에서 buzzword 밀도(robust, seamless, leverage, synergy 등), 수동태 비율, 문장 길이 패턴, 반복 점수를 계산해 슬롭 스코어 60 이상이면 LLM 호출 전에 AI 쓰레기로 플래그
- 사전 필터링 보안 스캔: LLM 호출 전에 diff에서 AWS 키(AKIA[0-9A-Z]{16}), GitHub PAT(gh[pousr][A-Za-z0-9]{36,}), OpenAI 키(sk-[A-Za-z0-9]{48}), SQL 주입, XSS 패턴 등 50개 이상 보안 패턴과 Shannon entropy > 4.5의 고엔트로피 문자열을 로컬에서 감지
- 제약된 LLM 리뷰: 슬롭 필터를 통과하고 런타임 문제 징후가 있는 PR만 LLM에 전달하며, 시스템 프롬프트로 런타임 크래시, 메모리 누수, 레이스 컨디션, 보안 취약점만 리포트하도록 강제
- GitHub Action 통합: .github/workflows/pr-sentry.yml에 Ebuodinde/PR_SENTRY@v3 액션 추가, ANTHROPIC_API_KEY 시크릿 설정으로 2분 내 활성화
- 다중 LLM 지원 및 로컬 실행: Anthropic, OpenAI, DeepSeek 제공자 지원, Cursor/Claude Code에서 MCP 서버로 푸시 전 로컬에서 슬롭 감지 및 보안 스캔 실행 가능
Impact
아티클에 정량적 성능 수치가 명시되지 않았음. 다만 v3.0.0에서 262개 통과 테스트 보유.
Key Takeaway
AI 생성 콘텐츠 필터링은 통계적 휴리스틱(buzzword, 수동태 비율)으로 사전 단계를 거친 후 LLM 호출을 최소화하고, 코드 리뷰는 스타일이 아닌 런타임 영향(보안, 메모리, 동시성)만 집중하는 설계가 높은 신호-대-잡음 비를 유지한다.
실천 포인트
오픈소스 유지보수자들이 GitHub Actions를 통해 PR-Sentry를 설치하면, AI 생성 PR 필터링과 보안 패턴 사전 스캔으로 LLM 토큰 소비를 줄이면서도 실제 런타임 결함만 리포트받을 수 있으며, YAML 파일 하나로 언제든 제거 가능한 무잠금 구조로 도입 진입장벽이 낮다.