

🤖 Claude Code + GitHub MCP: Pipeline Tự Động Review PR Cắt 80% Thời Gian Code Review
Mỗi sáng senior dev team mình mở laptop là thấy 8-12 PR chờ. Review tử tế mất 3-4 tiếng. Bỏ qua thì bug lọt production, hotfix cuối tuần. Sprint chậm dần.
Cho đến khi mình build pipeline Claude Code + GitHub MCP tự động pre-screen PR. Sau 3 tháng: review giảm 80%, bug production giảm 64%. Bài này share setup đang chạy.
🚀 Vì sao combo này đáng tiền
GitHub MCP server cho Claude Code khả năng đọc PR diff, fetch comment, post review trực tiếp lên GitHub - không cần webhook. Claude Code chạy headless trong CI nên tích hợp GitHub Actions nhẹ tênh.
Khác Copilot review (chỉ comment dòng), Claude đọc toàn bộ context: CLAUDE.md, codebase pattern, test cũ, PR description. Nó review như junior dev đã làm dự án 6 tháng - không phải bot suggest đổi tên biến.
🛠️ Setup 4 bước
Bước 1: Cài GitHub MCP
claude mcp add github -- npx @modelcontextprotocol/server-github
export GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxx
Token cần scope repo + pull_requests.
Bước 2: Tạo CLAUDE.md trong repo
# Coding Convention
- TypeScript strict, no `any`
- Banned imports: lodash, moment (dùng dayjs)
- Security: KHÔNG raw SQL, KHÔNG eval, KHÔNG dangerouslySetInnerHTML
- Test: function business logic phải có unit test
Bước 3: Slash command /review-pr (file .claude/commands/review-pr.md):
Review PR #$ARGUMENTS:
1. Fetch diff qua mcp__github__pull_request_read
2. Đọc CLAUDE.md
3. Check 5 góc: Security, Performance, Test, Style, Breaking change
4. Post comment qua mcp__github__add_issue_comment
Bước 4: GitHub Action
on: pull_request
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm i -g @anthropic-ai/claude-code
- run: claude --print "/review-pr ${{ github.event.pull_request.number }}"
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_TOKEN }}
🔍 Claude review những gì
- Security: flag
db.query("SELECT * FROM u WHERE id=" + id)SQL injection. Tìm secrets hardcode, key AWS lộ commit, XSS quainnerHTML. - Performance: chỉ ra N+1 query trong loop. Memory leak khi quên cleanup
useEffect. - Test coverage: function mới 50 dòng không có test? Reject. Thiếu edge case null/empty? Comment ngay.
- Style: vi phạm CLAUDE.md (dùng
any, import bị ban) bị flag. - Breaking change: đổi schema DB, đổi API response → cảnh báo migration plan.
📊 Kết quả thực tế
Startup 12 dev dùng pipeline này 3 tháng:
| Metric | Trước | Sau | Δ |
|---|---|---|---|
| Bug lọt production | 11/tháng | 4/tháng | -64% |
| Senior review | 3.5h/ngày | 40 phút | -80% |
| Velocity sprint | 42 SP | 55 SP | +31% |
| PR merge time | 28h | 9h | -68% |
Lưu ý quan trọng: vẫn cần human review final trước khi merge. Claude pre-screen 80% issue thường gặp, senior focus logic phức tạp và kiến trúc.
💡 Pro tips
- Chọn model thông minh: Sonnet 4.6 cho review thường (rẻ, đủ tốt). Opus 4.7 cho PR động vào payment, auth, security-critical.
- Cost: ~$0.80/PR cho repo trung bình. Repo lớn $1.5-2.
- Tip ẩn: thêm
--max-turns 10để Claude không loop khi PR siêu phức tạp. - Branch protection: require 1 human approval - tránh Claude approve bug của Claude.
Pipeline không thay thế senior - nó giải phóng họ khỏi 200 dòng diff đổi tên biến, để focus việc cần não người. Build tốn 1 buổi sáng, ROI tính bằng tuần.
👉 Đọc thêm tutorial Claude Code agentic ở vibeaicoder.xyz


